[英]How to rename files in a folder based on a list?
我有一個包含大約 30 張圖像的文件夾,這些圖像保存為“0001”、“0002”等......等等,我有一個文件名,我想在列表中重命名它們。 我已經編寫了一些代碼,但目前出現錯誤
FileNotFoundError: [WinError 2] 系統找不到指定的文件:'0001.jpg' -> 'Filename1'
import os
directory = os.fsencode('Folder')
new_filenames = ['Filename1','Filename2'.....]
for index, file in enumerate(os.listdir(directory)):
old_filename = os.fsdecode(file)
os.rename(old_filename, new_filenames[index])
我從這里去哪里?
你可以試試這個:
import os
directory = os.fsencode('Folder')
new_filenames = ['Filename1.jpg','Filename2.jpg'.....]
for index, file in enumerate(os.listdir(directory)):
old_filename = os.fsdecode(file)
os.rename(old_filename, new_filenames[index])
最好使用glob
如果THE_NAME_OF_THE_FOLDER_TO_COPY_FROM已經在您的工作目錄中或提供圖像文件夾的完整路徑,則將其替換為文件夾名稱。
import glob
path= "THE_NAME_OF_THE_FOLDER_TO_COPY_FROM"
images = glob.glob(path + "*.jpg")
print(images)
這是我剛剛測試過的 Windows 10 上的示例路徑。
path = "C:/Users/ghaith/Desktop/test/"
如果你打印它們,你會看到你得到一個包含每個圖像名稱的列表,比如[FOLDER_NAME/IMAGE_NAME.png, ....]
然后,利用這個列表遍歷所有圖像並分別用replace更改它們的名稱。
因此,據我所知,您想重命名並刪除每張圖像中的000 ,對嗎?
for index, img in enumerate(images):
os.rename(img, img.replace('000', ''))
或者您可以使用一行列表理解來編寫它。
[os.rename(img, img.replace('000', '')) for img in images]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.