我知道这是之前提出的问题。我已经尝试了这些关于stackoverflow的查询中提供的所有可能的解决方案,但是都没有解决。
所以我有这个python代码,我试图在其中专门删除文件,音频文件(WAV格式)。我不知道为什么Windows不允许我删除文件。
这里发生错误----> os.remove(j) PermissionError:[WinError 32]该进程无法访问文件,因为该文件正在被另一个进程使用:“æ1.wav”
这已经刺了我一段时间了。因为除了当前使用的文件之外,我没有看到该文件被打开或使用过。
import soundfile as sf
import os
phon=['a','æ', 'ʌ','ɔ','ɑʊ', 'ɑɪ', 'b', 'ʧ', 'd', 'ð', 'ɛ', 'ɜɹ', 'eɪ', 'f', 'ɡ', 'h', 'i', 'ɪː', 'ʤ', 'k','l','m','n', 'ŋ', 'oʊ',
'p','ɹ', 's', 'ʃ', 't', 'θ', 'ʊ', 'u', 'v', 'w', 'j', 'z','ʒ','ɔɪ' ]
count=0
for i in phon:
path='C:\\Users\\enviz\\pron_dictionaries-master\\all_words\\all_phonemes\\'+i
os.makedirs(path , exist_ok=True)
os.chdir(path)
x=len(os.listdir(os.getcwd()))
files = os.listdir(path)
for j in files:
f = sf.SoundFile(j)
duration = (len(f) / f.samplerate)
size_of_audio = (os.path.getsize(j))/1024
#get rid of files less than 3KB
if(size_of_audio<=3 or duration<0.15):
os.remove(j) #the error is on this line
答案 0 :(得分:2)
我认为您已打开文件。您需要按照in the docs的说明将其关闭:
如果打开了一个文件,则只要SoundFile对象存在,它就会一直保持打开状态。当对象被垃圾回收时,文件关闭,但是您应该使用soundfile.SoundFile.close()方法或上下文管理器显式关闭文件