【发布时间】:2020-08-26 05:45:02
【问题描述】:
我有一段代码使用 os.walk 遍历目录,然后在相应的目录中获取那里所有 pdf 文件的文件列表。
为了在遍历后获取特定目录中的 pdf 文件列表,我使用 glob,如下所示:
file_list = glob.glob(os.path.join(root,invoice_dir_name, "*.pdf"))
它获取目录中以 .pdf 结尾的所有文件。
但我刚刚发现了一个极端情况,如果目录有 pdf 文件,但如果它们以 .PDF 结尾,它会返回空字符串,因为它正在寻找小写的 .pdf 扩展名。
如何在 glob 函数中添加正则表达式,以便它可以获取 .pdf 或 .PDF 中的任何一个。我试过了
file_list = glob.glob(os.path.join(root,invoice_dir_name, "*.(pdf|PDF)"))
但显然它不起作用
我的代码使用 glob 和 os.walk 并且要求使用的任何其他东西都将是代码的重做,所以我想知道是否可以使用 glob 找到一个 soln。谢谢
【问题讨论】:
-
我猜你可以调用 glob 两次,然后将所有结果放入一个列表中然后处理它
-
那行不通。为主目录中的每个子目录运行 Glob。对于一个子,它可以工作,因为它有 .pdf 文件。其他它没有 .PDF
-
我想说这和你已经做过的没有什么不同,让我分享一个代码。
-
glob.glob(os.path.join(root,invoice_dir_name, "*.pdf"))应该适用于两者......我相信glob模式不区分大小写 -
在 mac 上也可以;不起作用。 Glob 不区分大小写
标签: python