2 回答

TA貢獻1818條經(jīng)驗 獲得超3個贊
os.listdir僅返回文件名,不包含目錄名。重命名時需要包含該內(nèi)容。嘗試這樣的事情:
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條經(jīng)驗 獲得超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。
添加回答
舉報