我有一个接受字符串参数的Python脚本。
$ python script.py "one image.jpg" "another image.jpg"
这按预期工作。
Python argparse: ["one image.jpg", "another image.jpg"]
如果我需要传递文件名,
$ python script.py $(ls "/some/dir/*.jpg")
Python argparse: ["one", "image.jpg", "another", "image.jpg"]
如果使用-Q
of ls
命令,我可以将结果用双引号引起来。但是,引号在Python脚本中即转义。
$ python script.py $(ls -Q "/some/dir/*.jpg")
Python argparse: ['"one image.jpg"', '"another image.jpg"']
如何将ls
文件名扩展为适当的字符串以用作参数?(如我的第一个示例)
"$(ls -Q '/some/dir/*.jpg')"
。但是,答案给出了更好的选择。