我正在使用树莓派和python脚本从连接到pi的相机捕获图像。我有一个调用脚本的任务调度程序,脚本进行与摄像头连接的命令行调用。我正在尝试让它创建一个新文件,标题为从python的datetime模块中获取的时间戳。
我遇到的问题是它不能同时打印。我可以创建一个只有日期时间戳的文件;我可以用时间创造一个。但是,当我尝试将两者结合时,文件不会被创建,我不知道为什么。是因为文件名最终太长了吗?
我尝试了以下代码的多种变体:
import os
import time
import datetime
ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime("%y-%m-%d_%H:%M:%S")
sys_call = 'fswebcam -r 1280x720 /home/pi/python/projectx_images/%s' %st
os.system(sys_call)
我也试过使用datetime.now()
无济于事。具体来说,如果我尝试st = datetime.datetime.fromtimestamp(ts).strftime("%y-%m-%d')
或st = datetime.datetime.fromtimestamp(ts).strftime("%H:%M:%S')
,那么它可以正常工作,但不能同时使用。
答案 0 :(得分:1)
也许使用Python在这里有点过分。由于您的任务调度程序在调用Python时可能已经在调用shell,因此让我们让shell完成工作。
将此命令用于命令调度程序:
fswebcam -r 1280x720 /home/pi/python/projectx_images/$(date +%Y-%m-%d_%H:%M:%S)
答案 1 :(得分:0)
...假设
st = datetime.datetime.fromtimestamp(ts).strftime("%y-%m-%d_%H:%M:%S') <--- close with " instead of '
不是你的问题......我使用了以下代码,它对我有用。
ti = datetime.datetime.utcfromtimestamp(time.time()).strftime("%y-%m-%d_%H:%M:%S")
...输出
'17-11-18_01:47:48'
注意:此输出为UTC +0:00,因此您需要对其应用其他操作才能将其带到您的时区。由于time.time()以秒为单位返回UNIX纪元时间,因此您需要以相对于UTC +0:00(以秒为单位)更快/更慢的时区来缩短时间。
即。如果你在美国东部时间,那么你可以在utcfromtimestamp()
申请time.time() - 18000
来获得你的时区。
ti = datetime.datetime.utcfromtimestamp(time.time() - 18000).strftime("%y-%m-%d_%H:%M:%S")