shutil.make_archive权限问题

时间:2016-04-01 11:28:35

标签: python shutil

我的Python中有一项功能,可以每天备份特定目录。备份步骤包括压缩目录。我正在使用shutil.make_archive来压缩目录。

但是,当我压缩的目录包含我无权访问的文件时,我现在面临一个权限问题。

在这种情况下,我只想跳过该文件,然后继续压缩剩余的文件。我如何实现这一目标?

我搜索了SO并遇到了这个answer,它显示了如何使用zipfile库压缩目录。在这种情况下,我可以检查特定文件是否抛出异常并忽略它。

这是唯一的方式还是有更简单的方法?

我的代码(只使用 shutil.make_archive ):

shutil.make_archive(filename, "zip", foldername)

我为我修改的答案中的代码:

def zipdir(path, ziph):
    # ziph is zipfile handle
    for root, dirs, files in os.walk(path):
        for file in files:
            try:
                ziph.write(os.path.join(root, file))
            except PermissionError as e:
                continue

if __name__ == '__main__':
    zipf = zipfile.ZipFile('Python.zip', 'w', zipfile.ZIP_DEFLATED)
    zipdir('tmp/', zipf)
    zipf.close()

请告诉我是否有更简单/有效的解决方案。

0 个答案:

没有答案