Python Tryiing验证argv是否为int?

时间:2016-12-17 18:13:33

标签: python

这是我的代码,但因为argv是一个对象而失败: 我试图从包含int的命令行运行python prgram EX:python3 test.py 7

test.py包含:

text = input("Enter some text:")
code = argv[1]
if not code.isdigit():
    exit()

2 个答案:

答案 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()