问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python2.7 怎么解析命令行输入的中文参数

发布网友 发布时间:2022-04-22 22:46

我来回答

1个回答

热心网友 时间:2022-04-15 20:44

本文实例讲述了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程序设计有所帮助。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 杰的近义词是什么呢 如何从电脑上的酷狗里下载歌曲和歌词到手机中。 谜底是“杰”的字谜 vivo手机哪个系列性价比比较高 “杰”的繁体字是什么? 怎么用电脑酷狗音乐下载同步歌词到手机音乐里 桀是杰的繁体字吗? vivo5g手机有哪几款性价比最高 电脑上的酷狗音乐怎么在iPhone的酷狗音乐上同步? 傑与杰有什么联系?? 现在出的几款5G手机,哪一个性价比比较高啊? 杰字拼音是什么? 杰字是什么意思? 性价比高的5g手机有哪些? 在电脑上下载的酷狗音乐歌词怎样在itunes上同步到iphone4上 请问有“杰”这个姓氏吗? vivo一千多的手机哪款性价比高? 目前5G手机哪款性价比更高? 女孩起名派名是杰,配什么字好听? 杰是什么意思呢? 中国人寿 保重大疾病20种 都包括什么疾病? 健康险重疾险的区别 中国人寿重大疾病保险交20年,每年交2289元,现在交了6年,退保能退回来多少 健康险和重疾险哪个好,区别很大吗,买那种好? 我在中国人寿买了重大疾病保险每年8000元,要缴费20年,到时候能退给我吗... 想问下健康险和重疾险的区别是什么? 中国人寿重大疾病保险交费期二十年,年缴费980元,已交满十一年,现退保能收回多少钱?多谢大神相告 重大疾病险和健康险有什么区别啊?不明! 健康险和重疾险的区别是什么?要买哪一个? 中国人寿重大疾病保险有哪些? 健康险和重疾险有什么区别? 你不知道的健康险和重疾险的区别是什么 健康保险是什么?它和重疾险有什么区别? 人寿保险交了二十年,到期了,可得了重大疾病,还给理赔吗? 健康险和重疾险有什么区别 奈康人寿保险股份有限公司的大病保险交够20年能返回本金吗 健康险和重疾险哪个好?区别有哪些,该怎么选择啊? 健康险和重疾险的区别是什么?需要重复购买吗? 人寿保险重大疾病险交满20年怎么反 重疾险和健康险的区别