gpt4 book ai didi

python - 使用 zipfile 归档每个文件的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-04 03:44:29 24 4
gpt4 key购买 nike

现在我需要在目标路径下单独归档文件。

这是树。

C:\Users\User\Downloads\
| file_1.py
| file_2.py
| file_3.py
|
\---Folder
file_4.py
file_5.py

这是我的代码。

import os
import zipfile


def archive(file_path):
for file_name in os.listdir(file_path):
file = os.path.join(file_path, file_name)
if os.path.isfile(file):
with zipfile.ZipFile(f'{file}.zip', 'w') as zip:
zip.write(file)
os.remove(file)

archive(r'C:\Users\User\Downloads')

我实际上可以分别归档 file_1.pyfile_2.pyfile_3.py。但是,我打开 file_1.zip 发现不仅文件被压缩,而且还包含完整路径。

使用 zipfile 压缩每个文件的正确方法是什么?

最佳答案

您可以使用write 函数的第二个参数来指定存档中文件的名称。只需将文件名传递给它即可。此外,使用 os.walk() 处理所有文件夹:

def archive(folder):
for root, dirs, files in os.walk(folder):
for file in files:
full_path = os.path.join(root, file)
zip_file = os.path.join(root, f'{file}.zip')
with zipfile.ZipFile(zip_file, 'w') as zip:
zip.write(full_path, file)
# Delete original
os.remove(full_path)

关于python - 使用 zipfile 归档每个文件的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65394528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com