glob 返回一个空列表,但在调试模式下列表按预期返回

问题描述 投票:0回答:1

所以,我的电脑上有“price.pdf”。准确地说,该目录是“D:\python\price.pdf”。 这是代码:

import glob
pdf_files = glob.glob("*pdf")
print(pdf_files)

你可以看到我没有路径,只有文件格式。这是因为 .py 文件和所需的 .pdf 位于同一目录中。我认为我不需要填写路径,因为两个文件放在一起。

我得到的输出当然是[]。

棘手的部分是代码在调试模式下工作正常并返回所需的

['price.pdf']

我尝试填写这样的路径

pdf_files = glob.glob("D:\\python\*pdf")

但它返回这个

['D:\\python\\price.pdf']

我想这个 glob 模块和其他一些库之间可能存在冲突,但我不确定。欢迎任何帮助。谢谢

python list glob
1个回答
0
投票

您可以使用pathlib删除父目录部分。 这个小脚本可让您定义一个搜索目录,查找其中的所有 pdf,然后仅打印文件名。

from pathlib import Path
# set search directory to any path you like
search_dir = Path("D:\\python")

# find all pdfs in search dir (does not search nested folders, use rglob if desired)
files = search_dir.glob("*.pdf")
#files = search_dir.rglob("*.pdf")

# remove parent from paths
files = [p.name for p in files]

print(files)
© www.soinside.com 2019 - 2024. All rights reserved.