我正在尝试在argparse中使用一个整数作为位置参数。给出了以下完整的python脚本(取自本教程):
#!/usr/bin/env python
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
type=int)
args = parser.parse_args()
print args.square**2
当我将此脚本称为时
> script.py 3
结果我得到
error: argument square: invalid int value: 'C:\home\dev\freqana\3'
argparse
显然希望这里有一个文件系统路径,但为什么呢?type
肯定设置为int
。
代码是正确的。我在python 2.7上运行了你的程序,得到了预期的答案:
> script.py 3
9
你运行的代码正确吗?cat(linux)或键入(windows)script.py以确保您拥有最新的,然后在python下显式运行以确保您不会在路径上拾取不同的script.py(python script.py 3)