使用Python zipfile生成的压缩包Windows无法解压求助
问题解决方法
你的代码主要有两个问题导致Windows无法解压生成的压缩包:
压缩包条目包含上级目录路径
原代码中使用archive.write(filename)时,会将文件的完整相对路径(../Binary/titanic_train.csv)作为压缩包内的文件路径。Windows自带的解压工具对包含../(上级目录标识)的条目兼容性极差,会直接判定压缩包无效。重复添加同名文件
你两次添加了同一个文件,压缩包内会出现两个完全同名的条目,部分解压工具处理这种冲突时也会报错。
修改后的代码:
import zipfile filenames = [r"..\Binary\titanic_train.csv" , r"..\Binary\titanic_train.csv"] with zipfile.ZipFile(r"..\Binary\multiple_files.zip", mode="w") as archive: for idx, filename in enumerate(filenames): # 指定压缩包内的文件名,去掉上级路径并给重复文件重命名 arcname = f"titanic_train_{idx+1}.csv" archive.write(filename, arcname=arcname)
如果不需要重复文件,直接去掉列表里的重复项即可:
import zipfile filenames = [r"..\Binary\titanic_train.csv"] with zipfile.ZipFile(r"..\Binary\multiple_files.zip", mode="w") as archive: archive.write(filenames[0], arcname="titanic_train.csv")
内容的提问来源于stack exchange,提问作者ds_practicioner
相关产品推荐
相关产品推荐

