Переименование файлов в папке по дате Python - PullRequest
0 голосов
/ 24 сентября 2018

Я хочу переименовать фотографии в папке по дате.Это мой скрипт на 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'

Файл определенно находится в папке.Можете ли вы помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Похоже, вам нужно дать os.rename() абсолютный путь к файлу

os.rename(file, os.path.join(folder_name, date + file_extension))
0 голосов
/ 24 сентября 2018

Почему вы берете базовое имя у цели, когда абсолютный путь будет в порядке?

os.rename работает с файлами, которые существуют .Это работает, если вы передаете абсолютные пути при условии, что файлы находятся на одном диске.Я бы сделал:

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

в основном удалите базовое имя и добавьте имя папки для места назначения.Поскольку каталог одинаков для обоих, это будет работать.И это намного чище, чем грязный os.chdir(folder_name)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...