win32权限:无法删除文件

win32 permission: Cannot delete file

我知道这是一个以前被问过的问题。我已经尝试了在 Whosebug 上的那些查询中提供的所有可能的解决方案,但是 none 已经解决了。

所以我有这个 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

我想你打开了文件。您需要按照说明关闭它 in the docs:

If a file is opened, it is kept open for as long as the SoundFile object exists. The file closes when the object is garbage collected, but you should use the soundfile.SoundFile.close() method or the context manager to close the file explicitly