求助:如何将for循环结果存入DataFrame并导出Excel?PDF信息仅存最后一条
解决Python收集PDF文件信息并生成DataFrame的问题
你的问题出在循环中每次都覆盖了results字典,导致最终只保留了最后一个文件的数据。正确的做法是用一个列表来收集所有文件的信息,再将整个列表传入DataFrame。
修正后的完整代码
import os import datetime import pandas as pd path = 'Insert Path' def ts_to_dt(ts): return datetime.datetime.fromtimestamp(ts) # 初始化空列表,用于收集所有文件信息 results = [] for file in os.scandir(path): # 统一转成小写后缀判断,更简洁 if file.name.lower().endswith(".pdf"): # 将每个文件的信息以字典形式追加到列表中 results.append({ 'FileName': file.name, 'DateModified': ts_to_dt(file.stat().st_atime) }) # 用列表直接生成DataFrame,每个字典对应一行数据 df = pd.DataFrame(results) print(df) # 导出到Excel文件(可选,根据需求添加) df.to_excel('pdf_file_info.xlsx', index=False)
关键修改点说明
- 把
results从单个字典改成空列表,循环中用append()方法添加每个文件的信息字典 - 后缀判断用
lower()统一转小写,避免重复判断.pdf和.PDF - 创建DataFrame时直接传入列表,无需指定
index=[0],列表中的每个元素会自动成为DataFrame的一行
这样就能完整收集所有PDF文件的信息,再导出到Excel了。
内容的提问来源于stack exchange,提问作者Samantha Thompson
相关产品推荐
相关产品推荐

