我想按日期重命名文件夹中的照片。这是我的python脚本。
import os
from datetime import datetime
folder_name = 'D:/Users/user/Desktop/Xiomi/100ANDRO/'
dir_list = [os.path.join(folder_name, x) for x in os.listdir(folder_name)]
for file in dir_list:
filename, file_extension = os.path.splitext(file)
date = datetime.fromtimestamp(os.path.getctime(file)).strftime('%Y_%m_%d_%H_%M_%S')
os.rename(os.path.basename(file), date + file_extension)
print(dir_list)
但是我有一个错误:
$ python script.py
Traceback (most recent call last):
File "script.py", line 10, in <module>
os.rename(os.path.basename(file), date + file_extension)
FileNotFoundError: [WinError 2] ▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒:
'DSC_0003.JPG' -> '2018_07_08_12_28_21.JPG'
该文件肯定在文件夹中。你能帮我吗?
答案 0 :(得分:2)
为什么绝对路径没问题,为什么要从目标中获取基本名称?
os.rename
适用于存在的文件。如果您传递绝对路径(如果文件位于同一驱动器上),它将起作用。我会做的:
os.rename(file, os.path.join(folder_name,date + file_extension))
基本上删除基本名称,然后添加目标的文件夹名称。由于两者的目录相同,因此可以使用。而且比脏的os.chdir(folder_name)
答案 1 :(得分:1)
在我看来,您需要给os.rename()
指向文件的绝对路径
os.rename(file, os.path.join(folder_name, date + file_extension))