我有超過 1000 個 JPG 圖像在一個不同名稱的文件夾中。我想將圖像重命名為 0.JPG、1.jpg、2.jpg...我嘗試了不同的代碼,但出現以下錯誤:The system cannot find the file specified: 'IMG_0102.JPG' -> '1.JPG'import os_src = "C:\\Users\\sazid\\Desktop\\snake"_ext = ".JPG"for i,filename in enumerate(os.listdir(_src)):? ? if filename.endswith(_ext):? ? ? ? os.rename(filename, str(i)+_ext)如何解決這個錯誤。有更好的代碼來按順序重命名圖像文件嗎?
2 回答

泛舟湖上清波郎朗
TA貢獻1818條經驗 獲得超3個贊
os.listdir僅返回文件名,不包含目錄名。重命名時需要包含該內容。嘗試這樣的事情:
import os
_src = "C:\\Users\\sazid\\Desktop\\snake"
_ext = ".JPG"
for i,filename in enumerate(os.listdir(_src)):
if filename.endswith(_ext):
src_file = os.path.join(_src, filename)
dst_file = os.path.join(_src, str(i)+_ext)
os.rename(src_file, dst_file)

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
只需使用glob即可避免頭痛
使用 glob 你的代碼變成這樣:
import os
from glob import glob
target_dir = './some/dir/with/data'
for i, p in enumerate(glob(f'{target_dir}/*.jpg')):
? ? os.rename(p, f'{target_dir}/{i}.jpg')
在此代碼中,為glob()
您提供了具有擴展名的文件的已找到文件路徑列表.jpg
,因此*.jpg
為 的模式glob。
添加回答
舉報
0/150
提交
取消