python - Argparse 和命令行语法

标签 python argparse

我正在编写一个程序,它接受一个文件参数,如 *.xml*.txt 或类似的东西。例如:

parser.add_argument("-f", "--file")
args=parser.parse_args()

例如

python myprog.py -f *.xml

然后 args.file 不会给出命令行字符串 *.xml,而是目录列表而不是符合 *.xml ,但这不是我想要的行为。

所以这是我的问题:有没有办法将 `*.xml 作为字符串获取。我知道你可以输入

python myprog.py -f '*.xml'

但对于许多不同的用户来说,这将不起作用,因为有些人会忘记 '

换句话说,我需要在命令行中输入的原始文本。

最佳答案

问题是 shell 在到达 python 或 argparse 之前扩展了 *。尝试转义它,这样 shell 就不会像这样处理它

python myprog.py -f \*.xml

关于python - Argparse 和命令行语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37991216/

相关文章:

python - Flask - 如何存储日志并添加附加信息

python - 尝试计算相关系数但返回的值高得离谱

Python:一种用于汇总满足条件的列表中的元素的衬里

python - 使用 argparse 创建输出文件

python - 允许带有 nargs 的位置命令行参数由标志分隔

python - 用于 ubuntu 14.04(cuda 8.0、python2.7.6、pip 19.0.1)上 gpu 安装错误的 pytorch - 不支持轮子

python - 使用 pyinstaller 时出现“No module named util”错误

python - Argparse 位置参数和可选参数的顺序不正确

Python - 规避 argparse nargs 错误

python:停止导入的模块解析命令行参数