我想用python 2.7.8解压缩文件。当我尝试将包含同名文件的zip文件解压缩到一个文件夹时,由于重复名称,一些文件丢失了。我试着这样说:
import zipfile,fnmatch,os
rootPath = r"C:\zip"
pattern = '*.zip'
for root, dirs, files in os.walk(rootPath):
for filename in fnmatch.filter(files, pattern):
print(os.path.join(root, filename))
outpath = r"C:\Project\new"
zipfile.ZipFile(os.path.join(root, filename)).extractall(r"C:\Project\new")
更新:
我尝试将zip文件中的所有文件解压缩到一个文件夹中,而不创建新的子文件夹。如果有同名文件我需要所有文件
答案 0 :(得分:0)
ZipFile.extractall()
方法只是提取文件并将它们一个一个地存储在目标路径中。如果要保留具有重复名称的文件,则必须使用ZipeFile.namelist()
对成员进行迭代,并在检测到重复项时采取适当的操作。 ZipFile.read()
允许您读取文件内容,然后您可以在任何地方(以及任何名称)编写它们。