獲取命令行參數用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(
