2014-04-09 62 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]