【发布时间】:2011-06-22 11:35:56
【问题描述】:
我尝试从一个文件夹中包含子文件夹的 .zip 中提取所有文件。我希望子文件夹中的所有文件仅提取到一个文件夹中,而不保留原始结构。目前,我提取所有文件,将文件移动到一个文件夹,然后删除以前的子文件夹。同名文件会被覆盖。
可以在写文件之前做吗?
这是一个结构示例:
my_zip/file1.txt
my_zip/dir1/file2.txt
my_zip/dir1/dir2/file3.txt
my_zip/dir3/file4.txt
最后我希望:
my_dir/file1.txt
my_dir/file2.txt
my_dir/file3.txt
my_dir/file4.txt
我可以在这段代码中添加什么?
import zipfile
my_dir = "D:\\Download\\"
my_zip = "D:\\Download\\my_file.zip"
zip_file = zipfile.ZipFile(my_zip, 'r')
for files in zip_file.namelist():
zip_file.extract(files, my_dir)
zip_file.close()
如果我从 zip_file.namelist() 重命名文件路径,则会出现以下错误:
KeyError: "There is no item named 'file2.txt' in the archive"
【问题讨论】:
标签: python extract unzip zipfile