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

在Python中如何获取命令行参数

发布网友 发布时间:2022-04-26 07:17

我来回答

2个回答

懂视网 时间:2022-05-08 00:33

这篇文章主要介绍了python实现读取命令行参数的方法,涉及Python中sys模块的相关使用技巧,需要的朋友可以参考下

如果想对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="])

【相关教程推荐】

1. Python视频教程
2. Python3视频教程
3. bootstrap教程

热心网友 时间:2022-05-07 21:41

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在爱水APP哪个模块中可以填写个人信息,查询自己一天的饮水量? 黄金为什么是避险产品 避险买什么 避险品种是什么 避险产品什么意思 什么是避险产品 ...对联和我们平时使用的印章,说说使用了哪几个字体 对联上写的是什么字 ...有一空是让我评价我自己,请各位哥哥姐姐帮帮忙,帮我编一段,往好了... 艾灸用品哪种好 用手机照了一张卷子,有导出到电脑上,图片直接打印出来有灰色底色怎么去除 只学PS可以去做那些工作?UI可以做吗? 怎么用ps做ui设计 《Photoshop智能手机APP界面设计》pdf下载在线阅读全文,求百度网盘云... 为什么连供墨盒一清洗就断墨 佳能喷墨打印机打不出彩色,打印头能水洗吗?如果能洗怎么洗,应该注意什么? 打印机连供墨盒怎么清洗 墨盒可能是加墨太多了,黄色里混了点红色,怎么办?能用水清洗吗? 连供喷墨打印机墨盒堵塞,有什么办法清洗?具体步骤是怎么样的,希望能够有比较清晰的思路。谢谢! 打印机的连供如何清洗? 清洗连供墨盒 连供怎么清洗,可以清洗吗? 打印机墨加混了,把墨全部倒出来后,可以在连供里加入清水来涮洗吗? 银行的借记卡是什么意思? 借记卡是什么意思呢? 会计学里的“借记”到底是什么意思? 建筑中BIM技术哪个软件应用最为广泛? 国内目前应用BIM比较好的大型设计院有哪些 bim+应用的是哪些 BIM技术在建筑领域的应用主要有哪些方面? python 命令行传参的几种方法 怎样才能让python 脚本像shell命令一样直接运行并可以接收参数_百度... 如何为python代码传递命令行参数 Python中如何设置命令行参数(sys.argv) python编写一个程序 可用命令行参数接受用户输入的字符串列表 列出列 ... Python IDLE中如何设置命令行参数 python检查是否有命令行参数 python如何获取命令行的参数,类似__name__的变量还有哪些 python如何运行程序并向程序传入参数? 金骏眉为什么不用正空包装 金骏眉茶叶礼盒怎么开 金骏眉茶叶包装袋内有一层黄粉样的粉末,是否是商家染色的? 这种包装的金骏眉多少钱? 那个茶叶金色包装的金骏眉要一万一斤,有懂的人吗? 我有一盒极品金骏眉茶叶,它的包装是,方铁盒,青瓷,请问价格多少呀 单县人在上海 想回单县从东营拉三个人怎么啦 有宜昌到单县的拼车顺风车吗? 2020年1月31日有山东省单县到北京的顺风车么? 单县陈蛮庄煤矿至徐州的拼车有吗?