Tôi cố gắng trích xuất tất cả các tệp từ .zip chứa thư mục con trong một thư mục. Tôi muốn tất cả các tệp từ thư mục con được trích xuất chỉ trong một thư mục mà không giữ cấu trúc ban đầu. Tại thời điểm này, tôi trích xuất tất cả, di chuyển các tập tin vào một thư mục, sau đó loại bỏ các thư mục con trước đó. Các tệp có cùng tên sẽ bị ghi đè.Trích xuất tệp từ zip mà không cần giữ cấu trúc bằng cách sử dụng python ZipFile?
Có thể làm điều đó trước khi ghi tệp không?
Dưới đây là một cấu trúc ví dụ:
my_zip/file1.txt
my_zip/dir1/file2.txt
my_zip/dir1/dir2/file3.txt
my_zip/dir3/file4.txt
Cuối cùng tôi whish này:
my_dir/file1.txt
my_dir/file2.txt
my_dir/file3.txt
my_dir/file4.txt
tôi có thể thêm gì để mã này?
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()
nếu tôi đổi tên file đường đi từ zip_file.namelist(), tôi có lỗi này:
KeyError: "There is no item named 'file2.txt' in the archive"
Cảm ơn bạn nó hoạt động – Thammas