2017-07-05 106 views
0

是否有可能使fswebcam生成的图像名称从python中的变量中获取名称?我的想法是,我有一个刷卡系统,可以拍摄谁刷卡并将图像存储到文件夹中的摄像头。我想让卡片的序列号和时间成为生成图像的名称。现在,我只找到一种方法来获得用名字写的时间,而不是序列号。谁能帮我吗?在Python中自定义fswebcam文件名

刷卡系统代码:

import datetime 
import time 
import os 
import RPi.GPIO as gpio 

t = datetime.datetime.now() 

gpio.setmode(gpio.BOARD) 
gpio.setwarnings(False) 

while True: 
    card = raw_input() 
    f = open("Laptop Sign Out" + '.txt', 'a') 
    f.write("Card Number: " + card[1:10] + " Time: " + t.strftime("%m-%d-%Y %H:%M:%S")) 
    f.write('\n') 
    f.close() 
    time.sleep(1) 
    os.system('fswebcam ~/Desktop/Photos/%H%M%S.jpeg') 
    time.sleep(3) 

gpio.cleanup() 
+0

是否要用名称由变量确定保存图像? – eyllanesc

+0

@eyllanesc是的。该变量将是卡片变量(或者简单地它只是raw_input())。所以理想情况下,我希望图像名称是rawinput_datetime.jpg – Draenokh

+0

请参阅我的答案:P – eyllanesc

回答

1

正好连接相应的文本,在这种情况下使用的格式。

os.system('fswebcam ~/Desktop/Photos/{}_{}.jpeg'.format(card, t.strftime("%m-%d-%Y %H:%M:%S"))) 

完整代码:

import datetime 
import time 
import os 
import RPi.GPIO as gpio 

gpio.setmode(gpio.BOARD) 
gpio.setwarnings(False) 

while True: 
    card = raw_input() 
    t = datetime.datetime.now() 
    f = open("Laptop Sign Out" + '.txt', 'a') 
    f.write("Card Number: " + card[1:10] + " Time: " + t.strftime("%m-%d-%Y %H:%M:%S")) 
    f.write('\n') 
    f.close() 
    time.sleep(1) 
    os.system('fswebcam ~/Desktop/Photos/{}_{}.jpeg'.format(card, t.strftime("%m-%d-%Y %H:%M:%S"))) 
    time.sleep(3) 

gpio.cleanup() 

注:我已经搬到变量t的位置,因为如果是循环它永远不会被更新内。

+0

非常感谢!有效!! – Draenokh