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似乎没有解析的主要内容,如果未能解决你的问题,请参考以下文章

ensp中的AR路由器为啥一直在启动当中,无法进入配置界面

Python3.2.3官方文档(中文版)

PyQt:Windows Vista/7 上 QTableView 中的 QStyledItemDelegate?

历史上的今天7 月 6 日:RSA 算法发明人诞生;AR 游戏 Pokémon GO 发布;Tumblr 创始人出生

Windows 7 与 Windows XP 上 Firefox 中的字体行间距

在 Parallels 8 中的 Windows 7 上运行 C# Windows Forms 应用程序错误