在工作中有个需求,将文件夹下的文件进行批量的重命名操作,代码如下:
import os
import datetime
path = r'D:\Python\09_osSytem\1'
for root, dirs, files in os.walk(path):
for picture in files:
sour = os.path.join(root, picture)
newname = datetime.datetime.fromtimestamp(os.path.getctime(os.path.join(root, picture))).strftime('%Y-%m-%d %H:%M:%S')
dst = os.path.join(root, newname + '_' + picture)
os.rename(sour, dst)
运行时报错:
OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: 'D:\\Python\\09_osSytem\\1\\IMG_0419.JPG' -> 'D:\\Python\\09_osSytem\\1\\2023-04-01 09:35:14_IMG_0419.JPG'
错误分析:
[WinError 123] 文件名、目录名或卷标语法不正确,WinError这代表的是操作系统返回的错误,是代码在修改文件名时不符合WINDOWS的命名语法。错误就在文件名中不能包括部分特殊符号;代码中的修改成日期时分秒时,使用了:冒号,不允许;
所有修改.strftime('%Y-%m-%d %H:%M:%S') 为.strftime('%Y-%m-%d %H-%M-%S')就正常了。