gpt4 book ai didi

python - 解压缩python Zipfile后尝试删除文件

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:17 25 4
gpt4 key购买 nike

所以有很多关于这个的帖子,我已经尝试了所有推荐的解决方案,但似乎都没有用。我试图在解压缩后删除 zip 存档。

我已经尝试过 os.removeos.unlink 使用 with 声明一切!但我不断得到

WindowsError: [Error 32] The process cannot access the file because it is being used by another process:

提前致谢

def Unzip(f, password, foldername):
'''
This function unzips a file, based on parameters,
it will create folders and will overwrite files with the same
name if needed.
'''

if foldername != '':
outpath = os.path.dirname(f) + '\\'+ foldername
if not os.path.exists(outpath):
os.mkdir(outpath)
else:
outpath = os.path.dirname(f)
if not os.path.exists(outpath):
os.mkdir(outpath)

if password == '':
z = zipfile.ZipFile(f)
z.extractall(outpath)
z.close()
os.unlink(f)

else:
z = zipfile.ZipFile(f)
z.extractall(outpath, None, password)
z.close()
os.unlink(f)

更新,所以我更改了代码,这有效:

    z = zipfile.ZipFile(f)
z.extractall(outpath)
z.close()
del z
os.unlink(f)

最佳答案

这是由错误 ( issue 16183 ) 引起的,该错误现在已在最新版本的 Python 2 和 3 中得到修复。但作为早期版本的解决方法,请传递文件对象而不是路径:

with open(f, 'rb') as fileobj:
z = zipfile.ZipFile(fileobj)
z.extractall(outpath)
z.close()
os.remove(f)

关于python - 解压缩python Zipfile后尝试删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31210393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com