Использование strftime для создания имени файла является проблемой в Windows? - PullRequest
0 голосов
/ 03 октября 2019

У меня есть следующий скрипт, работающий в Ubuntu для загрузки изображений с веб-страницы и сохранения их в каталоге с текущим временем.

import urllib.request
import os
from datetime import datetime, date, time

images = ['https://www.abc.info/a/300.jpg', 'https://www.abc.info/b/301.jpg']

for image in images:
    fullfilename = os.path.join('/home/me/foo/bar/', now.strftime('%Y-%m-%d %H:%M:%S ') + image.split('/')[-1])    
    urllib.request.urlretrieve(image, fullfilename )

Я хочу скопировать его в Windows. Следующий код не работает, и это то, что он говорит:

fullfilename = os.path.join(r'''C:\Users\me\foo\bar''' , now.strftime("%Y-%m-%d %H:%M:%S ") + image.split('/')[-1])

OSError: [Errno 22] Invalid argument: 'C:\\Users\\me\\foo\\bar\\2019-10-03 12:38:48 300.jpg'

Однако следующее работает хорошо. Я предпочитаю предыдущий формат («% Y-% m-% d% H:% M:% S»). В чем ошибка?

fullfilename = os.path.join(r'''C:\Users\me\foo\bar''' , now.strftime("%Y %m %d %H %M %S ") + image.split('/')[-1])
...