如何排除" .DS_Store"压缩Python中文件的路径

时间:2016-05-04 14:24:36

标签: python zip hidden-files

我有一个python脚本将特定文件压缩成zip文件。但是我注意到了一个文件" .DS_Store"是在这个zip文件中生成的。有没有办法可以从zip文件中删除它,或者避免在我的python脚本中首先创建它。从我在网上找到的,我认为在Windows机器上这个隐藏文件显示为" macosx"文件。

我使用和不使用" .DS_Store"测试了zip文件。隐藏文件(我手动删除它)。当我删除它时,zip文件能够正确处理,当我将其保留时,会抛出错误。

这就是我在python脚本中创建zip文件的方法:

    #Create zip file of all necessary files
    zipf = zipfile.ZipFile(new_path+zip_file_name, 'w', zipfile.ZIP_DEFLATED)
    create_zip(new_path,zipf)
    zipf.close()

任何有关如何删除此隐藏文件的建议都将不胜感激。

1 个答案:

答案 0 :(得分:3)

您的代码使用了一个函数create_zip,但您还没有共享该函数的代码。据推测,它遍历目录的内容并调用ZipFile实例的.write方法,以便将每个文件写入存档。如果是这种情况,只需在该函数中添加一些逻辑,以排除任何名为.DS_Store的文件。

def create_zip(path, zipfile):
    files = os.listdir(path)
    for file in files:
        if file != '.DS_Store':
            zipfile.write(file)