Python PIL使用datetime作为名称保存文件

时间:2011-06-13 07:05:23

标签: python datetime python-imaging-library video-capture

我对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 个答案:

答案 0 :(得分:7)

'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模块。要以不同方式格式化时间戳,请咨询the documentation here

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')

使用日期时间在文件名中保存图像。 (为了便于阅读,我将函数调用分为两行,请参阅this question,了解其工作原理。