2014-04-09 105 views
1

我一直在嘗試以下,許多崗位的建議,但我仍然得到如何在Python中讀取整型命令行參數?

ValueError: invalid literal for int() with base 10: 'gap_interval.py'。我錯過了什麼?

import sys 

if __name__ == '__main__': 
    n = 4 
    a = [] 
    for i in sys.argv: 
     print int(i.strip()) 
+1

'gap_interval.py'不是一個字符串。它也是sys.argv的一部分,它告訴你。 – metatoaster

+0

對,它是sys.argv [0]。謝謝!! – Pippi

回答

3

您需要跳過sys.argv中[0],這是腳本的名稱:

for i in sys.argv[1:]: 
    # ... 
4

的Python sys.argv總是包含文件名作爲第一個參數:

>>> python test.py 1 2 3 
>>> sys.argv 
['test.py', '1', '2', '3'] 

如果你想將它轉換成int,你可以這樣做:

nums = map(int, sys.argv[1:]) 

>>> nums 
[1,2,3]