windows 7上python3.2.3中的argparse似乎没有解析
Posted
技术标签:
【中文标题】windows 7上python3.2.3中的argparse似乎没有解析【英文标题】:argparse in python3.2.3 on windows 7 does not seem to parse 【发布时间】:2012-09-07 09:06:55 【问题描述】:因为我在 windows 上运行了 python,所以这是我遇到的下一个问题 argparse,我没有看到解决方案。我以前使用过 optparse。这是我的代码:
import argparse
parser = argparse.ArgumentParser(
description = 'Test description') # main description for help
parser.add_argument('-d', '--dir', # -u or --user option
dest = "dir",
help = 'directory to start with')
args = parser.parse_args()
print(args.dir)
但是当我运行这段代码时
code.py -d test
code.py --dir test
我总是得到一个None
作为输出。我觉得这是一件微不足道的事情,而且我忽略了一些明显的事情,但我看不到它。
坦克
亚历克斯
【问题讨论】:
在 OSX 10.7.4、Python 2.6.5 上为我工作,但我很惊讶这在 Windows 上会失败。 在我的 Windows 7 x64 和 cpython 3.2.3 上运行良好。code.py --help
的输出是什么?
code.py --help
还提供None
!我假设 argparse 会自动读取 sys.argv
还是我需要将其传递给自己?
@Alex 是的,argparse 会自动查看 sys.argv,除非你另有说明。
一个明显的做法是添加一行打印出sys.argv
的实际值,以证明您的代码实际上得到了正确的参数。
【参考方案1】:
问题似乎是由 Windows 引起的,以及如何尝试在命令行上执行代码。在给定的示例中,直接在命令行上调用了测试脚本,代码前没有python
,建议in this answer。
如果代码是这样执行的
python code.py
看到了预期的行为,并且在代码中正确解析了参数。
所以要么是Windows系统的设置不完整,要么是上面链接中的建议不完整。
【讨论】:
以上是关于windows 7上python3.2.3中的argparse似乎没有解析的主要内容,如果未能解决你的问题,请参考以下文章
PyQt:Windows Vista/7 上 QTableView 中的 QStyledItemDelegate?
历史上的今天7 月 6 日:RSA 算法发明人诞生;AR 游戏 Pokémon GO 发布;Tumblr 创始人出生