这是我的代码,但因为argv是一个对象而失败:
我试图从包含int的命令行运行python prgram
EX:python3 test.py 7
test.py
包含:
text = input("Enter some text:")
code = argv[1]
if not code.isdigit():
exit()
答案 0 :(得分:2)
您想要的是sys.argv
,而不是argv
。因此,您需要导入sys
模块。 (你也可以from sys import argv
,或者 - 更糟 - from sys import *
- 但不要)。
#!/usr/bin/env python3
import sys
code = sys.argv[1]
if not code.isdigit():
exit()
通常的做法是简单地尝试将字符串转换为整数,并捕获失败的位置:
#!/usr/bin/env python3
import sys
code = sys.argv[1]
try:
code_int = int(code)
except ValueError, e:
print("Unable to parse code as an integer")
sys.exit(1)
print("Parsed code as {}".format(code_int))
...这样做的好处是可以在code_int
中添加整数版本的值。
答案 1 :(得分:1)
您可以使用argparse来强制输入整数和检查数字
import argparse
text = input("Enter some text:")
parser = argparse.ArgumentParser(description='Some integers.')
parser.add_argument('code', metavar='N', type=int, help='an integer')
args = parser.parse_args()