繁体   English   中英

Python 解压多个 zip 文件然后重命名提取文件的代码

[英]Python code to unzip multiple zip files then rename extracted files

我试图找到 python 脚本以在文件夹中提取 3 个 zip 文件,然后删除 zip 文件并修改提取的文件名。 实际上我只需要从每个提取文件的名称中提取前 80 个字符。

如果有人可以提供帮助。 谢谢

我用下面的脚本

import zipfile,os,fnmatch, glob

path = "Directory\\"
dir_list = os.listdir(path)

counter = 1

for file in dir_list:
with zipfile.PyZipFile(path+"\\"+file,'r') as zObject:
    zObject.extractall(path=path)
zObject.close()
counter +=1
os.unlink(path +file)

os.chdir("Directory\\")
for file in os.listdir():
print(file)

我可以看到解压缩和 zip 文件删除已完成,但是当我尝试重命名文件时,我可以看到以下错误,因此我无法继续下一步

文件“C:\Users\melnagga\AppData\Local\Programs\Python\Python311\Lib\zipfile.py”,第 1366 行,在 _RealGetContents 中 raise BadZipFile("File is not a zip file") zipfile.BadZipFile: File is not一个 zip 文件

对我来说,关键是将 zip 文件解压缩到其他目录,然后在新目录中重命名解压缩的文件

使用的代码如下所示:

import zipfile,os


path = "Directory_pth\\" 
dir_list = os.listdir(path)


for file in dir_list:
    with zipfile.PyZipFile(path+"\\"+file,'r') as zObject:
        zObject.extractall(New Directory_path")
    os.unlink(path +file)
    zObject.close()
    
os.chdir("New Directory_path")
for file in os.listdir():
   name, ext = os.path.splitext(file)
   splitted = name.split("-")
   new_name = f"{splitted[0]}_new{ext}"
   os.rename(file,new_name)

感谢所有试图提供帮助的人

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM