我想写一个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中,没有办法在不解压的情况下修改压缩文件。我能想到的一种方法是 可 解决你的问题,假设你是在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: