Python:传递命令行参数

获取命令行参数用sys.argv,参数类型都是str
t.py内容:

#!/usr/bin/env python3
#coding=utf-8
import sys

if __name__ == "__main__":
    print(len(sys.argv))
    print(sys.argv[1])    
[root@xjb ~]# python3 t.py abc
2
abc
[root@xjb ~]# ./t.py 123
2
123

注意:

如果命令行参数里有特殊字符,如()等,会报错,这是可以用""''将参数引起来,python程序获取到的参数会是""包裹里的内容(不包括""),若参数里有",可以用\"转义。
如程序t.py如下:

#!/usr/bin/env python
#coding=utf-8
import sys
if __name__ == "__main__":
    print(len(sys.argv))
    for arg in sys.argv:
        print(arg)

运行程序:

[root@xjb tmp]# ./t.py abc ab( ab)
-bash: syntax error near unexpected token `('

[root@xjb tmp]# ./t.py abc ab\( ab\)
4
./t.py
abc
ab(
ab)

[root@xjb tmp]# ./t.py abc "ab(" "ab)"
4
./t.py
abc
ab(
ab)

[root@xjb tmp]# ./t.py 'ab"sdc' "ab'"
3
./t.py
ab"sdc
ab'

[root@xjb tmp]# ./t.py 'ab"sdc' 'ad('
3
./t.py
ab"sdc
ad(

posted @ 2018-12-27 09:00  xuejianbest  阅读(1547)  评论(0编辑  收藏  举报