python - 将路径附加到路径

标签 python python-3.x pathlib

是否可以附加一个 pathlib.Path 生成器或组合两个 Path

from pathlib import Path
paths = Path('folder_with_pdfs').glob('**/*.pdf')
paths.append(Path('folder_with_xlss').glob('**/*.xls'))

通过这次尝试,您将得到:

AttributeError: 'generator' object has no attribute 'append'

最佳答案

那是因为Path.glob返回一个生成器,即一个在调用next时返回值的对象,它完全不知道appending是什么。

如果您需要一个将路径包含在 list 调用中的列表,您这里有两个选择:

paths = list(Path('folder_with_pdfs').glob('**/*.pdf'))
paths.append(list(Path('folder_with_xlss').glob('**/*.xls')))

(尽管 extend 可能是您在这里所追求的。)

这当然违背了生成器的目的。

所以,我建议使用类似 chain 的内容并创建一个生成器,将它们组合起来并一次生成一个:

from itertools import chain

p1 = Path('folder_with_pdfs').glob('**/*.pdf')
p2 = Path('folder_with_xlss').glob('**/*.xls')
paths = chain(p1, p2)

然后根据需要迭代路径,同时减少内存占用。

关于python - 将路径附加到路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39834556/

相关文章:

python - 路径库:无法从 'Sequence' 导入名称 'collections'

python - 如何使 re.split() 具有包容性

python - Tornado 网络和线程

python - 枚举属性的类型注释

python - 使用正则表达式忽略包含子字符串的单词

python - 无法获取特定链接而不是全部链接

python - 什么可能导致此错误: FileNotFoundError: [Errno 2] No such file or directory

python - 在unix中查找文件的真实路径

python - 无法使用 BeautifulSoup Python 从 NBA 统计网站找到 <div ng-view>

Python:无法使用 read_csv 正确读取 csv 文件的第一行