Python 通过it重命名文件夹中的文件';s日期蟒蛇

Python 通过it重命名文件夹中的文件';s日期蟒蛇,python,file,operating-system,Python,File,Operating System,我想按日期重命名文件夹中的照片。这是我的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

我想按日期重命名文件夹中的照片。这是我的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'
$python script.py
回溯(最近一次呼叫最后一次):
文件“script.py”,第10行,在
重命名(os.path.basename(文件),日期+文件扩展名)
FileNotFoundError:[WinError 2]▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒: 
“DSC_0003.JPG”->“2018_07_08_12_28_21.JPG”

文件肯定在文件夹中。你能帮我一个忙吗?

当绝对路径正常时,为什么要从目标中获取基本名称

os.rename
适用于存在的文件。如果您传递绝对路径,并且文件位于同一驱动器上,则该方法有效。我会:

os.rename(file, os.path.join(folder_name,date + file_extension))

基本上删除basename,并为目标添加文件夹名。因为两者的目录都是相同的,所以这样就行了。而且它比脏的
os.chdir(文件夹名称)

看起来你需要给
os.rename()
文件的绝对路径

os.rename(file, os.path.join(folder_name, date + file_extension))

重命名需要绝对路径。