使用pathlib结合DataFrame中路径值匹配文件失败问题求助
代码修正方案
错误原因
你的代码存在2个核心问题:
- 取值逻辑错误:遍历DataFrame的
iterrows()方法时,每一轮循环拿到的row对象才是当前行的数据,你写的df['Search2']、df['filename']取到的是整列的全部值,不是当前行对应的路径和文件名。 - 变量误用引号包裹:你在
Path('Search')和rglob('filename')里把变量名加了引号,Python会直接把它们识别成固定字符串Search、filename,不会读取对应变量里存储的实际内容。
修正后代码
from pathlib import Path for index, row in df.iterrows(): # 取当前行的路径和文件名变量 search_path = row['Search2'] match_filename = row['filename'] # 直接传入变量,不要加引号 for path in Path(search_path).rglob(match_filename): print(path)
如果DataFrame行数特别多,想优化性能可以直接遍历两列的配对值,写法如下:
from pathlib import Path for search_path, match_filename in zip(df['Search2'], df['filename']): for path in Path(search_path).rglob(match_filename): print(path)
内容的提问来源于stack exchange,提问作者Kamikaze K
相关产品推荐
相关产品推荐

