Python 2.7中从GZIP提取指定CSV文件遇错,求解决方案
解决
GzipFile无open方法的问题 咱们先把问题根源理清楚:你用错模块啦!gzip模块只能处理单个文件的gzip压缩包,但从file命令的输出能看到,你的my-files.zip是标准的Zip归档(支持包含多文件的压缩包),所以用gzip.open打开后得到的GzipFile对象根本没有open方法,这就是你触发AttributeError的核心原因。
之前你尝试zipfile模块没成功,大概率是用法细节没到位,下面给你正确的实现代码:
import zipfile import csv # 用zipfile.ZipFile打开归档文件,模式设为'r'代表只读 with zipfile.ZipFile('my-files.zip', 'r') as myzip: # 先确认归档内的文件路径,避免找错文件 print("归档内的文件列表:", myzip.namelist()) # 打开目标csv文件,若文件有特殊编码可指定encoding参数,比如utf-8 with myzip.open('my-doc.csv') as myfile: # 读取并解码csv内容,适配csv.reader的要求 reader = csv.reader(myfile.read().decode('utf-8').splitlines()) # 测试打印几行内容验证 for row in reader: print(row)
额外小提示:
- 如果遇到编码错误,记得根据csv文件的实际编码调整
decode的参数,比如gbk或utf-8-sig - 先用
myzip.namelist()打印所有文件路径,确保你要打开的my-doc.csv路径完全正确(比如可能藏在子文件夹里,路径是subfolder/my-doc.csv)
内容的提问来源于stack exchange,提问作者MoreScratch
相关产品推荐
相关产品推荐

