我可以选择在shutil中归档哪个文件吗? [复制]

Posted

技术标签:

【中文标题】我可以选择在shutil中归档哪个文件吗? [复制]【英文标题】:Can I select which file to archive in shutil? [duplicate] 【发布时间】:2018-04-05 12:59:15 【问题描述】:

我只想归档我目录中的一些文件。假设如下目录结构:

current_dir
  - current_file
    audio/
  - fileA
  - fileB

在这种情况下,我可以只归档 Python 脚本 (current_file) 中的 audio/fileA 吗?

我使用shutil,但下面的命令似乎使用了特定目录中的所有文件。

shutil.make_archive("new_file", 'zip', dir_name)

【问题讨论】:

考虑使用zlib 而不是shutil 【参考方案1】:

这是实现您想要的一种可能的方法:

import os
import zipfile
import glob

content = [
    "audio",
    "fileA"
]


def zip_dir(path, zip_file):
    for root, dirs, files in os.walk(path):
        for file in files:
            zip_file.write(os.path.join(root, file))

zip_file = zipfile.ZipFile("mcve.zip", 'w')
for path in content:
    if os.path.isdir(path):
        zip_dir(path, zip_file)
    else:
        zip_file.write(path)
zip_file.close()

【讨论】:

以上是关于我可以选择在shutil中归档哪个文件吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python的shutil模块中文件的复制操作

shutil库:Python高级文件操作

shutil库:Python高级文件操作

归档项目后如何访问添加的 pdf 文件以将其复制到用户文档文件夹中?

python中shutil和shutil库的用法

shutil 模块中 shutil.copy()、shutil.rmtree()、shutil.move()等基本函数用法介绍!