我嘗試從包含一個文件夾中的子文件夾的.zip中提取所有文件。我希望所有來自子文件夾的文件只在一個文件夾中提取,而不保留原始結構。目前,我提取所有文件,將文件移動到一個文件夾,然後刪除以前的子文件夾。具有相同名稱的文件被盜用。從zip中提取文件而不保留使用python ZipFile的結構?
在寫文件之前可以做到嗎?
這裏的結構。例如:
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"
謝謝你的作品 – Thammas 2011-02-07 02:21:30