1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python命令行参数传递

python命令行参数传递

时间:2024-02-01 09:02:54

相关推荐

python命令行参数传递

sys.args

python使用命令行传递参数。程序中可以导入sys模块。然后使用sys.args即可获取传递而来的参数。

简单示例

import sysdef test_sys_args():if len(sys.argv) > 1:print(len(sys.argv) - 1)print(sys.argv)else:print('无参数输入')if __name__ == '__main__':test_sys_args()

执行

python test.py a 1 test

输出结果

3['test.py', 'a', '1', 'test']

sys.args实现从程序外部向程序传递参数。它的值是一个列表list。保存了通过命令行传递的各个参数。

第一个参数 即sys.argv[0] 是程序本身。

其它参数在命令行传入时使用空格分开。

参数格式

命令行参数之间使用空格 分开,如果参数本身包含空格,可以使用双引号"",(注,单引号’'不起作用,反而会被当做是参数的一部分)。如果参数中包含", 可以在命令行传递参数是使用 \ 转义字符。

(venv) > python test.py "a1" 'a2' "a 3" 'a 4' \"test\"6['test.py', 'a1', "'a2'", 'a 3', "'a", "4'", '"test"']

可以看到’‘括起来的参数’'是一起作为参数的一部分的,""括起来的参数是一个整体,会把引号内的空格当作参数一部分,不会分割参数。如果参数内包含双引号,那就只能使用\转义字符。

argparse

/3/library/argparse.html

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广。

可以认为将sys.args中收集的参数做了一些封装处理。

具体使用可以网上搜索。比如

/piperck/p/8446580.html

命令行参数传递json数据

一般是不会有这个需求的,不会通过命令行参数来传递json数据的。最多是将json数据保存在一个文件中然后读取。

真的直接使用命令行参数传递json数据的话,由于json数据存在大量的"",想要将其作为一个整体字符串传入。必须将每个"前加上\转义字符。。这个想一想就不靠谱吧。。。

所以真的要传递json数据的话。可以先将就送数据进行base64加密,将加密后的base64字符串传入,python接收到参数后再base64解密得到正常的json数据。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。