pythonargc
㈠ python 列表a中的5个元素由用户输入获得,print出列表a
#coding=utf-8
myList=[]
for i in range(5)
myList[i]=input() #每个元素都是字符串,要别的类型需要自己转换
print myList
㈡ python代码解释
darray是要查找的字符串的集合
函数isInArray(array,line) 用于查找array中每个字符串是否在line中出现过
这个程序从命令行得到文件名,然后打开文件,查找darray中所包含的字符串在文件每一行是否出现,如果该行不包含darray中的字符串,则将该行写入到 "原始文件名.result"文件中
with open(fname, 'r') as f: #打开文件
with open(fresult, 'w') as g: #打开储存结果 的.result文件
for line in f.readlines(): #读取文件每行
if not isInArray(darray, line): #如果该行不包含任何darray里的字符串
g.write(line) #将该行写入.result文件
㈢ python中怎么调用自己的方法
C/C++对Python的调用层次可以分为三个层次, (1) 高层次的调用, (2)纯Python调用, (3) Python方法的扩展(也就使向Python输出调用函数). 这里我主要讨论(1)和(2)两种方法.
1 高层次的调用
这是最简单的一种在C/C++中调用Python的方法. 它直接的调用Python提供的C调用接口函数, 这些函数主要有: PyRun_SimpleString(), PyRun_SimpleStringFlags(), PyRun_SimpleFile(), PyRun_SimpleFileEx()和PyRun_SimpleFileExFlags()几个. 函数的具体用法参考Python的文档.
这里举个例子来说明这种层次的用法:
由这个例子可见, 在C/C++中调用Python的内容非常简单, 只要构造一个简单的Python调用字符串.这里要注意的就是, Python调用串语句之间要用'/n'来分开, 且语句之间不能有空格, 如上面的Python字符串不能写成: "import sys/n print sys.path" , 否则要出错的.
// c/c++ 中 Python 调用必须的头文件
#include <Python.h>
//
int main(int argc, char* argv[])
{
// 初始化Python解析环境
Py_Initialize();
// 构造Python执行脚本
char szPyScript[128];
sprintf(szPyScript, "import sys/nprint sys.path");
if(PyRun_SimpleString(szPyScript) != 0)
{
sprintf(stderr, "execute /'%s/'failed!", szPyScript);
return -1;
}
// 清除Python解析环境
Py_Finalize();
}
//
//
以上的例子也表明了在C/C++中调用Python的基本结构, 就是
(1) 先初始化Python环境然: Py_Initialize()
(2) 具体对Python的操作
(3) 清除Python环境
更复杂的一个使用高层调用的例子, 这个例子用PyRun_SimpleFile的例子.
这里值得注意是, 在Window中:
(1) 链接debug版本的时候会自动链接PythonXX(_d).lib库, PythonXX_d安装时是没有安装的, 所以要显示的指定链接PythonXX.lib库, 不知道VC6.0为什么还会去找PythonXX_d.lib, 在vs7.0不会.
(2) 编译时要以 /MD(多线程DLL) 选项编译(不论时debug版本还时release版本都一样).
以上我在VC7.0中可以正确的运行, 在VC6.0这样还不行, 可能和我使用的版本有关系(我用的版本是:Python24.lib). 有知道的请赐教!!
// c/c++ 中 Python 调用必须的头文件
#include <Python.h>
//
int main(int argc, char* argv[])
{
// 初始化Python解析环境
Py_Initialize();
//
char szFile[] = "PyFile.py";
//sprintf(szPathFile, "%s//%s", szPath, szFile);
FILE* fp = fopen(szFile, "r");
if(PyRun_SimpleFile(fp, szFile) != 0)
{
fclose(fp);
sprintf(stderr, "PyRun_SimpleFile(%s) failed!", saFile);
return -1;
}
fclose(fp);
// 清除Python解析环境
Py_Finalize();
}
2 纯Python调用
㈣ 怎么使用argv
argv:即所谓的参数变量,这个变量保存着运行Python脚本时传递给Python脚本的参数。
解包:把argv中的东西取出来,将所有的参数依次赋值给左边的变量。
在argv.py文件中输入以下代码:
from sys import argv
script, first, second, third = argv
print("The script is called:", script)
print("Your first variable is:", first)
print("Your second variable is:", second)
print("Your third variable is:", third)
在DOS下运行(Terminal)argv.py文件及返回:
F:workspacePython-testsrc est1>python argv.py a b c
The script is called: test.py
Your first variable is: a
Your second variable is: b
Your third variable is: c
注意:这里不是直接运行argv.py文件,而是带了三个参数,否则会报错。这里argv.py本身就是第一个参数,“a”是第二个参数了。
(4)pythonargc扩展阅读:
argc,argv 用命令行编译程序时有用。
主函数main中变量(int argc,char *argv[ ])的含义
有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++
main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的标准写法。
* argv[ ]: 指针数组,用来存放指向字符串参数的指针,每一个元素指向一个参数
argv[0] 指向程序运行的全路径名
argv[1] 指向在DOS命令行中执行程序名后的第一个字符串
argv[2] 指向执行程序名后的第二个字符串
...
argv[argc]为NULL。
**env:字符串数组。env[ ]的每一个元素都包含ENVVAR=value形式的字符
串。其中ENVVAR为环境变量,value 为ENVVAR的对应值。
argc, argv,env是在main( )函数之前被赋值的,编译器生成的可执行文件,main( )不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关。
㈤ python 如何封装在某带参数函数之后等待时间
题主你好,
方法及相应代码见截图:
*.方法不只一种, 题主看看如果不合适请追问. 上面这种做法的好处是封装的这个函数func可以带任意多个位置参数. //就图主的问题来看, *args就够了, 如果func函数中还有关键字参数,则还需要使用**argv.
-----
希望可以帮到题主, 欢迎追问
㈥ 如何用python将内容一行输入
直接在命令行运行foo,则”./foo”被当做argv[0],但是通过exec运行foo发现并没有参数传入foo(程序没有任何输出),也就是说argc值为0。这是什么原因呢?我们知道argv存放的是传递给main函数的命令行参数,当在命令行键入”./foo”时,唯一的命令行参数”./foo”就被传入给main的argv了。所以直接在命令行运行foo就打印出唯一的参数”./foo”。
那么execl的情况呢?首先看一下execl的原型:
int execl(const char* pathname,const char* arg0,.../*(char*)0*/);
注意到了吧,第一个参数是要执行的程序名,第二个参数才是要传入待执行程序的第一个参数,而上述main.c中没有第二个参数(这里说的是execl的第二个参数),也就是没有给foo传递任何参数,foo的参数表argv当然就是空了,或者说argc为0。
㈦ python2.7 怎么解析命令行输入的中文参数
本文实例讲述了python读取命令行参数的方法。分享给大家供大家参考。具体分析如下:
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]
test.py:
import sys
print "脚本名:", sys.argv[0]
for i in range(1, len(sys.argv)):
print "参数", i, sys.argv[i]
>>>python test.py hello world
脚本名:test.py
参数 1 hello
参数 2 world
python中使用命令行选项:
例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。
要求该脚本满足以下条件:
1.通过-i -o选项来区别参数是输入文件还是输出文件.
>>> python convert.py -i inputfile -o outputfile
2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息
>>> python convert.py -h
getopt函数原形:
getopt.getopt(args, options[, long_options])
convert.py:
import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
input_file=""
output_file=""
for op, value in opts:
if op == "-i":
input_file = value
elif op == "-o":
output_file = value
elif op == "-h":
usage()
sys.exit()
代码解释:
a) sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
b) "hi:o:": 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号。所以"hi:o:"就表示"h"是一个开关选项;"i:"和"o:"则表示后面应该带一个参数。
c) 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。
getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)
长选项格式举例:
--version
--file=error.txt
让一个脚本同时支持短选项和长选项
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])
希望本文所述对大家的Python程序设计有所帮助。
㈧ Python编写程序 输入提示“请输入成绩(按回车键退出):”,将输入的百分制成绩转换为相应的等级
编码思路:
申明两个变量: 成绩cj为 浮点数float 且 取值范围为 [0,100] 闭区间内; pf为字符类型,接收最终分数评级的字母A,B,C,D,E中的一个。
引导用户输入100分制的分数,并用cj接收。
判断分数是否为一个有效的分数。在不在 [0,100] 区间内,若不在则提示“成绩无效”。
在成绩有效的情况下,利用if...esle if...else...逐级判断,分数大于90的评为A,不大于90(在前一判断后else即取反)的但是又大于80的评为B,以此类推,分别判断出分数评级C,D,E。将字符赋值给字符变量pf;
最后输出分数评级。
代码示例:
//代码语言:C++#include<iostream>intmain(intargc,constchar*argv[]){floatcj;//成绩100分制charpf;//评分A,B,C,D,Estd::cout<<"输入您的分数:";std::cin>>cj;//输入的分数赋值给cjif(cj>100||cj<0){//分数小于0或大于100时成绩无效std::cout<<"您的成绩无效! ";}else{//成绩有效时即:[0,100]if(cj>90){//大于90即:(90,100]pf='A';}elseif(cj>=80){//即:[80,90]pf='B';}elseif(cj>=70){//即:[70,80)pf='C';}elseif(cj>=60){//即:[60,70)pf='D';}else{//否则(不大于60)即:[0,60)pf='E';}std::cout<<"您的分数评级为:"<<pf<<" ";//输出结果}return0;}
㈨ python中的argv.items()代表什么意思呢
sys.argv[0]表示代码本身文件路径。sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,因为从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表。
所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。
Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。
(9)pythonargc扩展阅读
Python的字典的items(), keys(), values()都返回一个list
argc,argv 用命令行编译程序时有用。
主函数main中变量(int argc,char *argv[ ])的含义
有些编译器允许将main()的返回类型声明为void,这已不再是合法的C++
main(int argc, char *argv[ ], char **env)才是UNIX和Linux中的标准写法。
argc: 整数,用来统计你运行程序时送给main函数的命令行参数的个数