Как я могу исправить ошибку erroos.rename () [WinError 123] Неверный синтаксис имени файла, имени каталога или метки тома - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь переименовать файл и добавить дату и время к имени файла:

current_date = datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')

os.rename(r'C:\Users\xxx\test.csv',
          r'C:\Users\xxx\test__' + str(current_date) + '.csv')

Ошибка:

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect

Я также пытался:

current_date = datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')

old = 'C:/Users/xxx/test.csv'
new = 'C:/Users/xxx/test_' + str(current_date) + '.csv'
os.rename(old, new)

Все еще получил ту же ошибку, может кто-нибудь помочь мне, пожалуйста. Этот сценарий будет выполняться в контейнере docker, я подозреваю, что если я не могу переименовать локальный файл, могу ли я просто переименовать его в образе docker? Но я предполагаю, что часть datetime будет более сложной. Я боролся уже целую неделю. Может кто-нибудь помочь мне заранее спасибо.

1 Ответ

2 голосов
/ 17 апреля 2020

Вероятно, проблема в двоеточии. Заменить:

current_date = datetime.datetime.today (). Strftime ('% Y_% m_% d_% H:% M:% S')

на:

current_date = datetime.datetime.today (). strftime ('% Y_% m_% d_% H_% M_% S')

В идеале, в имени файла не должно быть двоеточий или пробелов.

...