Python argv 采用通配符路径

标签 python python-2.7 glob

我使用 doc1/*.png 作为第一个参数运行脚本,但它被转换为 doc1/image1.png

如何让 Python 看到确切的参数?

img_list = []
print sys.argv[1]
x = sys.argv[1]
img_list = [img for img in glob.glob(x)]

最佳答案

在大多数 Linux shell(bashshfish...)上,星号由 shell 处理。 * 转换为文件列表的事实已在 shell 级别完成

如果你写:

python file.py doc/*.png

shell 本身会将 doc/*.png 转换为 "doc/1.png""doc/2.png" (因此它在 doc 目录中找到的 .png 文件列表。

您应该使用引号来传递星号,例如:

python file.py 'doc/*.png'

标准 Windows shell 对文件名使用通配符。

关于Python argv 采用通配符路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45329930/

相关文章:

python - 如何从包含字符串条目的列表列表中删除 NaN?

python - 将包含 2 个值的列拆分为 pandas df 中的不同列

python - 标记列表上的正则表达式/glob 而不是字符串

Perl glob、qq() 和方括号 []

python - 我可以限制 Python 中子类的类型吗?

python包输出字符串格式

python - split() 缺少 1 个必需的位置参数 : 'y'

python - 使用 datetime.datetime 在 python 中从用户获取输入日期

python - 如何将带有字符串的 DataFrame 连接到带有 Unicode 的 DataFrame 并标准化数据类型

git - 按模式递归添加文件