Skip to main content
 首页 » 编程设计

python之仅读取命令行参数的一部分

2025年05月04日9mfrbuaa

每当我通过命令行给出一个数字时,比方说 92,它只需要 9,完全忽略 2。但是,如果我使用 arg[1],它将使用 2 而不是 9。 导入系统

for arg in sys.argv: 
    print arg 
 
print ""     
print "-----" 
print ""     
 
try: 
    argNumber = int(arg[0]) 
except ValueError: 
    argNumber = 0 
    print "This is wrong" 
 
for i in range(argNumber, 0, -1): 
    print i 

此外,出于某种原因,我无法将打印“这是错误的”行添加到 ValueError 除外。它给我一个缩进错误?

请您参考如下方法:

问题是您在 arg[0] 上调用 int。现在,arg 是初始循环遗留下来的,当您遍历 sys.argv 中的所有参数时 - 它是该循环的最后一个元素。因此,当您使用 [0] 对它进行切片时,您实际上是从最后一个参数中获取第一个字符,而不是像您预期的那样从第一个参数中获取。

您的解决方法是在此处简单地使用 sys.argv[1]。