python文件解除占用_Python 3:另一个进程正在使用文件怎么办?

通常,在这里提交代码时,我会尽量只包含演示问题的最小代码量。但是,直到编写代码结束时,我才遇到这个问题,这使得调试问题几乎是不可能的。

我有一段代码可以在不同类型之间转换一个文件。该代码是功能性的,没有任何问题。它从ZIP文件中的XCI文件开始,并将其转换为文件夹。但是,在代码的末尾,我尝试让我的脚本删除它创建的一些临时文件夹。这会导致一个有点令人困惑的错误,我一直无法成功地排除故障。import os, shutil, zipfile

from shutil import copyfile

from time import sleep

for fileName in os.listdir("D:/start"):

filePath = "D:/start" + fileName

os.makedirs("C:/Users/Julian/Documents/conversion/extract")

copyfile(filePath, "C:/Users/Julian/Documents/conversion/extract/game.zip")

print("Extracting C:/Users/Julian/Documents/conversion/extract/game.zip")

zip_ref = zipfile.ZipFile("C:/Users/Julian/Documents/conversion/extract/game.zip", 'r')

zip_ref.extractall("C:/Users/Julian/Documents/conversion/extract")

zip_ref.close()

for file in os.listdir("C:/Users/Julian/Documents/conversion/extract"):

if file.endswith(".xci"):

os.rename(os.path.join("C:/Users/Julian/Documents/conversion/extract", file), "C:/Users/Julian/Documents/conversionh/extract/game.xci")

os.system("C:/Users/Julian/Documents/conversion/hactool/hactool.exe -t xci C:/Users/Julian/Documents/conversion/extract/game.xci --outdir=C:/Users/Julian/Documents/conversionh/extract")

fileSizeTupleList = []

largestSize = 0

os.chdir("C:/Users/Julian/Documents/conversion/conversion/secure")

for i in os.listdir(os.curdir):

if os.path.isfile(i):

fileSizeTupleList.append((i, os.path.getsize(i)))

for fileName, fileSize in fileSizeTupleList:

if fileSize > largestSize:

largestSize = fileSize

largestFile = fileName

print("Extracting C:/Users/Julian/Documents/conversion/extract/secure/" + largestFile)

os.system("C:/Users/Julian/Documents/conversion/hactool/hactool.exe -t nca -k C:/Users/Julian/Documents/conversion/hactool/keys C:/Users/Julian/Documents/conversion/extract/secure/" + largestFile + " --exefsdir=C:/Users/Julian/Documents/conversion/game --romfs=C:/Users/Julian/Documents/conversion/game/RomFS.romfs")

shutil.copytree("C:/Users/Julian/Documents/conversion/game", "D:/end/" + os.path.split(filePath)[1][:-4])

shutil.rmtree("C:/Users/Julian/Documents/conversion/extract")

shutil.rmtree("C:/Users/Julian/Documents/conversion/game")

此代码正常工作,直到它到达倒数第二行。 那时,我发现以下错误:PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:/Users/Julian/Documents/conversion/extract\\secure'

我完全不知道是什么导致了这一错误,因此,任何帮助都将不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值