python的argparse中的整数参数抛出错误“invalid int value”期望路径

时间:2013-02-12 00:03:55

标签: python argparse

我正在尝试使用一个整数作为argparse中的位置参数。给出以下完整的python脚本(取自this教程):

   #!/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

1 个答案:

答案 0 :(得分:1)

代码是正确的。我在python 2.7上运行你的程序,得到了预期的答案:

> script.py 3
9

您是否正在运行正确的代码? cat(linux)或type(windows)script.py以确保你拥有最新版本,然后在python下明确运行以确保你没有在你的路径上选择不同的script.py(python script.py 3)