sys.argv
是 Python 的一个内置模块 sys
中的一个属性。它是一个列表,包含了从命令行传递给脚本的参数。
例如,如果你有一个名为 script.py
的脚本,并且你从终端窗口命令行这样运行它:
>>>python script.py arg1 arg2 arg3
那么在 script.py
中,sys.argv
的值将会是:['script.py', 'arg1', 'arg2', 'arg3']
sys.argv[0]
通常是脚本的名称(路径,如果它不是位于当前目录下的话)。其余的元素则是按顺序从命令行传递给脚本的参数。如下:
sys.argv[0]
的值是'script.py'
sys.argv[1]
的值是'arg1'
sys.argv[2]
的值是'arg2'
sys.argv[3]
的值是'arg3'
可以使用这些参数来定制你的脚本的行为。例如,你可以检查 sys.argv[1]
来决定执行哪种操作或处理哪种数据。script.py文件如下,在窗口中执行:
import sys
def run():
# 如果运行脚本没有参数,提醒、退出
if len(sys.argv) == 1:
print(f'运行代码{sys.argv[0]},缺少参数。')
print(f'终端执行python程序文件用法: python {sys.argv[0]} {{参数名字(可以多个,空格间隔)}}')
sys.exit()
# 打印脚本执行的参数
print(f"程序文件名:{sys.argv[0]} ")
for index,value in enumerate(sys.argv):
print(f"----sys.argv[{index}] : {value}")
if __name__ == '__main__':
run()
(py312) liuyf@liuyf-PC:~/LyfPyLearning$ python script.py
运行代码script.py,缺少参数。
终端执行python程序文件用法: python script.py {参数名字(可以多个,空格间隔)}
(py312) liuyf@liuyf-PC:~/LyfPyLearning$ python script.py 'liuzx' 'liuyf' '恭喜发财'
程序文件名:script.py
----sys.argv[0] : script.py
----sys.argv[1] : liuzx
----sys.argv[2] : liuyf
----sys.argv[3] : 恭喜发财
(py312) liuyf@liuyf-PC:~/LyfPyLearning$