Python PIL сохранить файл с датой и временем в качестве имени - PullRequest
4 голосов
/ 13 июня 2011

Я относительно новичок в python и знаю очень мало синтаксиса, но я хочу выучить как можно больше. Проще говоря, я хочу использовать функцию сохранения в PIL, чтобы сохранить .png с именем файла, являющимся текущими датой и временем. Это может быть осложнено тем фактом, что я не использую PIL напрямую, а через модуль Videocapture, но я сомневаюсь в этом. это мой код, который работает

from VideoCapture import Device
cam = Device()
cam.saveSnapshot('C:\Users\Myname\Dropbox\Foldes\image.png', timestamp=3, boldfont=1, textpos='bc')

Это коротко, но оно делает то, что мне нужно. Я понимаю, что Datetime нужно будет импортировать, но я не могу получить данные в качестве имени без ошибок. да, я пробовал команду str (). Любая помощь будет принята с благодарностью.

1 Ответ

7 голосов
/ 13 июня 2011
'C:\Users\Myname\Dropbox\Foldes\image.png'

В строках в Python обратная косая черта имеет особое значение, поэтому вам нужно обращаться с ними по-разному.Вы можете использовать два из них вместо одного ...

'C:\\Users\\Myname\\Dropbox\\Foldes\\image.png'

... или вы можете поставить r перед строкой (если она не заканчивается обратной косой чертой)

r'C:\Users\Myname\Dropbox\Foldes\image.png'

Чтобы сгенерировать строку, содержащую текущий день в формате YYYY-MM-DD-HH:MM, мы можем использовать модуль datetime следующим образом.Чтобы отформатировать временную метку по-другому, обратитесь к документации здесь .

import datetime
date_string = datetime.datetime.now().strftime("%Y-%m-%d-%H:%M")

В качестве более короткой альтернативы вы можете использовать аналогичный модуль time вместо:

import time
date_string = time.strftime("%Y-%m-%d-%H:%M")

После этого вы просто сможете сделать

cam.saveSnapshot(r'C:\Users\Myname\Dropbox\Foldes\image-' + date_string + '.png',
                 timestamp=3, boldfont=1, textpos='bc')

, чтобы сохранить изображение с датой и временем в имени файла.(Я разбил вызов функции на две строки для удобства чтения, см. в этом вопросе , чтобы узнать, как это работает.)

...