Python编程 | 系统编程 | 脚本运行上下文 | 命令行参数
Python可以通过sys
模块获取脚本启动时命令行输入的信息,通常,它们被称为命令行参数***,以内置字符串列表*的形式存于sys.argv
中
alone@alone-Vostro-14-5401:/media/alone/Coding/Python/Python项目/pp4e/system$ cat test_argv.py
import sys
print(sys.argv)
alone@alone-Vostro-14-5401:/media/alone/Coding/Python/Python项目/pp4e/system$ python test_argv.py -f file -d /home/alone/
['test_argv.py', '-f', 'file', '-d', '/home/alone/']
上述命令揭示了一个惯例:类似于function函数,命令行参数通过位置或使用**“-name value“**词语组来传递。
解析命令行参数
alone@alone-Vostro-14-5401:/media/alone/Coding/Python/Python项目/pp4e/system$ cat test_argv2.py
#!/usr/bin/env python
def get_option_name(sys_argv_list):
"扫描sys_argv_list列表查找-option_name option_value值对,并保存到字典r_option_dict返回"
r_option_dict = {}
while sys_argv_list:
if sys_argv_list[0][0] == '-':
r_option_dict[sys_argv_list[0]] = sys_argv_list[1]
del(sys_argv_list[:2])
else:
del(sys_argv_list[0])
return r_option_dict
if __name__ == '__main__':
import sys
print(get_option_name(sys.argv))
alone@alone-Vostro-14-5401:/media/alone/Coding/Python/Python项目/pp4e/system$ ./test_argv2.py 1106 2007 -f file -d /home/alone
{'-f': 'file', '-d': '/home/alone'}
对于更复杂的命令行,我们可以用Python标准库中的命令行处理工具来解析:
getopt
模块,仿效Unix/C中的同名工具optparse
模块,一个新的替代之选,通常认为它的功能更强大