我有一个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()
任何有关如何删除此隐藏文件的建议都将不胜感激。
答案 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)