簡體   English   中英

PermissionError:在 python 的循環中使用 os.remove 和 os.rename 時

[英]PermissionError: when using os.remove and os.rename in a loop in python

我的代碼用於下載文件並在此過程中使用 os.remove 和 os.rename 的腳本。 我的簡化代碼是:

for x in CPF:  
        onlyfiles = [f for f in listdir(r"D:\XXX\download") if isfile(join(r"D:XXX\download", f))]
        if onlyfiles!=[]:                
            files = glob.glob(r"D:XXX\download\*")        
            for f in files:                                
                os.remove(f)
        print("Now folder is empty")
        
    # Here download the data. Details omitted to simplify 
    
    # Here move the new files to another folder
    ID_CPF="CPF_"+x+".csv"
    new_folder = r"D:XXX\final\\"
    new_name = new_folder + ID_CPF
    list_of_files = glob.glob(r'C:XXX\Downloads\*.csv') 
    old_name = max(list_of_files, key=os.path.getctime)
    os.rename(old_name, new_name)

但我在 os.remove 行收到此錯誤消息:

PermissionError: [WinError 32] 該進程無法訪問該文件,因為它正被另一個進程使用:

是什么導致了這個問題,我該如何解決?

正如錯誤所說,可能您在刪除時在某處打開了文件,因此您的代碼無法訪問它。

確保位於"D:XXX\download\*"位置的任何文件都未打開或未在某處使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM