我正在编写一个程序,它接受一个文件参数,如 *.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/