2017-07-05 36 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