簡體   English   中英

重命名幾個文件夾中的文件。 OSError:[Errno 2]沒有這樣的文件或目錄

[英]Rename files from several folders. OSError: [Errno 2] No such file or directory

目錄Dates16包含幾個文件夾,如第一個列表中的下面的“ show you”(顯示)一樣,每個文件夾中都有很多.txt文件。 我想重命名這些文件,就像我在第二個列表中顯示的那樣

>>> oldNames
['./Documents/Dates16/Forest/file0.txt'
'./Documents/Dates16/Forest/file1.txt'
'./Documents/Dates16/Forest/file2.txt'
'./Documents/Dates16/Wet/file0.txt'
'./Documents/Dates16/Wet/file1.txt'
'./Documents/Dates16/Winter/file0.txt'
'./Documents/Dates16/Winter/file1.txt'
'./Documents/Dates16/Winter/file2.txt']

>>> newNames
['./Documents/Dates16/Forest/RT-file0.txt'
'./Documents/Dates16/Forest/RM-file1.txt'
'./Documents/Dates16/Forest/RA-file2.txt'
'./Documents/Dates16/Wet/RA-file0.txt'
'./Documents/Dates16/Wet/RT-file1.txt'
'./Documents/Dates16/Winter/RS-file0.txt'
'./Documents/Dates16/Winter/RT-file1.txt'
'./Documents/Dates16/Winter/RT-file2.txt']

兩個列表的長度相同,並且要重命名我正在使用此代碼的文件,但返回OSError,此代碼重命名列表的第一個元素,但隨后中斷循環並重新調整輸出錯誤。 那么我該如何解決呢? 謝謝

import os
for i in oldNames:
    for j in newNames:
        os.rename(i,j)
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
OSError: [Errno 2] No such file or directory

這不是Python OSError的重復項:[Errno 2]沒有這樣的文件或目錄,我沒有解釋我要查找的內容以及代碼的作用。 我真的不明白的另一篇文章,只要求修復錯誤

你應該用

for i, j in zip(oldNames, newNames):
    os.rename(i, j)

而不是嵌套的for循環。

zip函數以鎖定步驟迭代兩個數組,例如

os.rename(oldNames[0], newNames[0])
os.rename(oldNames[1], newNames[1])
os.rename(oldNames[2], newNames[2])
....

雖然嵌套循環實際上會執行

os.rename(oldNames[0], newNames[0])
os.rename(oldNames[0], newNames[1])
os.rename(oldNames[0], newNames[2])
os.rename(oldNames[0], newNames[3])
....
os.rename(oldNames[1], newNames[0])
os.rename(oldNames[1], newNames[1])
os.rename(oldNames[1], newNames[2])
os.rename(oldNames[1], newNames[3])
....
os.rename(oldNames[2], newNames[0])
os.rename(oldNames[2], newNames[1])
os.rename(oldNames[2], newNames[2])
os.rename(oldNames[2], newNames[3])
........
for i in oldNames:
    for j in newNames:

這就是問題。 您正在將每個oldName的文件名更改J次,即使第一次后該文件不再存在(因為它已被重命名)。

暫無
暫無

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

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