Python的argparse中整数参数报错“无效的整数值”,期望路径

0 投票
1 回答
5374 浏览
提问于 2025-04-17 15:34

我正在尝试在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

1 个回答

1

这段代码是对的。我在 Python 2.7 上运行了你的程序,得到了预期的结果:

> script.py 3
9

你确定在运行正确的代码吗?在 Linux 上用 cat 命令,或者在 Windows 上用 type 命令查看 script.py,确保你的是最新的。然后明确用 Python 来运行,确保你没有运行到其他地方的 script.py(用命令 python script.py 3)。

撰写回答