python - Python压缩文件时如何排除 ".DS_Store"路径

标签 python zip hidden-files

我有一个 python 脚本,可以将特定文件压缩到 zip 文件中。但是我注意到这个 zip 文件中生成了一个文件“.DS_Store”。有没有办法可以从 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()

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

最佳答案

您的代码使用了函数 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)

关于python - Python压缩文件时如何排除 ".DS_Store"路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37030635/

相关文章:

windows - 在 Windows 中隐藏文件

Android:有没有办法创建隐藏文件夹和隐藏文件?

python - sys.path.append 和模块出错

python - 查找具有特定类的 div 的后代

oracle - 使用 Oracle 存储过程压缩

javascript - React - 从字节字符串中的 API 响应正文下载 Zip 文件?

java - 将 Zip 内容读入字符串时出现 "ZipException - unexpected end of file when reading short buff"

swift - OS X API 枚举包含 AppleDouble 文件的文件夹(以 "._"开头)?

Python - 仅返回 for 循环语句中的第一个值

python - 使用 pylons 和 SQLAlchemy 创建表