如何将zipfile输出转换为Pandas DataFrame?解决printdir()返回None问题
解决方案:将ZIP文件目录转为Pandas DataFrame
printdir()确实只会把内容打印到控制台,返回值是None,没法直接转成DataFrame。但我们可以直接从ZipFile对象里提取文件的元数据,不用依赖printdir的输出。
实现步骤
- 用
ZipFile.infolist()获取ZIP内所有文件的详细信息(每个元素是ZipInfo对象,包含文件名、修改时间、大小等) - 从每个
ZipInfo对象中提取需要的字段,整理成列表后传入Pandas DataFrame - 可选:把
date_time字段(元组格式)转成可读性更强的日期时间格式
示例代码
import zipfile import pandas as pd from datetime import datetime with zipfile.ZipFile("files.zip", mode="r") as archive: # 提取所有文件的元数据 zip_info_list = archive.infolist() # 整理成DataFrame需要的结构 data = [] for info in zip_info_list: # 跳过目录(如果有的话) if not info.is_dir(): data.append({ "文件名": info.filename, "修改时间": datetime(*info.date_time), "原始大小(字节)": info.file_size, "压缩后大小(字节)": info.compress_size }) # 转成DataFrame df = pd.DataFrame(data) # 查看结果 print(df)
说明
- 如果需要保留目录,可以去掉
if not info.is_dir()的判断 ZipInfo还有其他字段(比如compress_type压缩类型),可以根据需求添加到数据中
内容的提问来源于stack exchange,提问作者SARTHAK
相关产品推荐
相关产品推荐

