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

rob*_*408 4 python datetime video-capture python-imaging-library

我对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')
Run Code Online (Sandbox Code Playgroud)

它的简短,但它确实是我需要的.我意识到需要导入Datetime,但是我无法将数据作为名称而没有错误.是的,我已经尝试过str()命令.任何帮助将不胜感激.

小智 7

'C:\Users\Myname\Dropbox\Foldes\image.png'
Run Code Online (Sandbox Code Playgroud)

在Python中的字符串中,反斜杠具有特殊含义,因此您需要以不同方式对待它们.你可以使用其中两个而不是一个......

'C:\\Users\\Myname\\Dropbox\\Foldes\\image.png'
Run Code Online (Sandbox Code Playgroud)

...或者你可以r在字符串之前放一个(只要它不以反斜杠结尾)

r'C:\Users\Myname\Dropbox\Foldes\image.png'
Run Code Online (Sandbox Code Playgroud)

要生成包含YYYY-MM-DD-HH:MM格式当前日期的字符串,我们可以像这样使用datetime模块.要以不同方式格式化时间戳,请参阅此处的文档.

import datetime
date_string = datetime.datetime.now().strftime("%Y-%m-%d-%H:%M")
Run Code Online (Sandbox Code Playgroud)

作为一个较短的替代方案,您可以使用类似的time模块:

import time
date_string = time.strftime("%Y-%m-%d-%H:%M")
Run Code Online (Sandbox Code Playgroud)

在此之后,你应该能够做到

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

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

  • 对于任何尝试使用此脚本的人,日期时间字符串中的冒号都会导致错误.我用空格替换它,即使它看起来很有趣,脚本运行也没有错误. (3认同)