如何在 Python 中压缩文件时排除“.DS_Store”路径
How to exclude ".DS_Store" path when compressing files in Python
我有一个 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 脚本可以将特定文件压缩成一个 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)