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(


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM