重命名压缩文件中的文件 [重复]

问题描述 投票:-2回答:1

我想写一个python脚本来重命名文件(包含一个预定义的字符串和另一个预定义的字符串),如何在不解压缩文件的情况下重命名压缩文件中的文件和文件夹(因为它可能非常大)?

import os
import zipfile
old_name="ABCD"
new_name="XYZ"

for d,s,files in os.walk(path):
 for f in files:
   if f.startswith(old_name) and f.endswith('.zip'):
     with zipfile.ZipFile(f,'a') as zf:
       for files_inside_zip in zf.namelist():
        if files_inside_zip.startswith(old_name):
          ## Now I need to rename only this particular file
          ## some files are larger than 1 GB
          ## and contains 1000+ files
          ## so extracting all doest seems to be a good idea

     zf.close  
python batch-file zipfile file-rename batch-rename
1个回答
-1
投票

在Python中,没有办法在不解压的情况下修改压缩文件。我能想到的一种方法是 解决你的问题,假设你是在linux上,是在Python中执行一个bash脚本,使用vim来透明地编辑存档。

源: 用python修改zip文件 在ziparchive中覆盖文件 从python中执行bash脚本。在python中运行bash脚本 用vim编辑压缩文件。https:/superuser.comquestions647674is-there-a-way toedit-files-insidide-of-a-zip-file-without-explicitly-extracting:

© www.soinside.com 2019 - 2024. All rights reserved.