如何使用ZipFile修改压缩文件的输出存储文件夹?
问题原因
你创建ZipFile对象时仅传入了压缩包的文件名,没有拼接目标存储路径DirectoryDestination,因此压缩包默认会保存在Python脚本执行的当前工作目录,不会自动存入你指定的D:\Location2路径下。
修复方案
构造压缩包文件名时拼接目标文件夹路径即可,推荐使用os.path.join处理路径拼接,避免手动拼接斜杠导致的格式错误,同时建议使用with上下文管理器管理ZipFile对象,避免文件句柄泄漏,修改后的代码如下:
import os import openpyxl from zipfile import ZipFile, ZIP_DEFLATED DirectorySource = r'D:\Location1' DirectoryDestination = r'D:\Location2' # 自动创建目标文件夹,避免路径不存在报错 os.makedirs(DirectoryDestination, exist_ok=True) data = openpyxl.load_workbook(r'D:\File_List.xlsx') df = data['Sheet1'] for i in range(2, df.max_row + 1): cell_obj = df.cell(row=i, column = 1) filename = f"{cell_obj.value}.txt" source_file_path = os.path.join(DirectorySource, filename) # 拼接目标压缩包完整存储路径 zip_file_path = os.path.join(DirectoryDestination, f"{cell_obj.value}.zip") with ZipFile(zip_file_path, mode='w') as zip_obj: zip_obj.write(source_file_path, filename, compress_type=ZIP_DEFLATED)
内容的提问来源于stack exchange,提问作者syazwan amir
相关产品推荐
相关产品推荐

