我正在使用 zbarcam 读取条形码,因为 zbarcam 在读取代码后不会自动终止。
这是我的 main.py 文件:
#!/usr/bin/python
import os
from config import *
while(1):
os.system('clear')
print "------Parking Sector 11----------"
print "Select : "
print """1. Scan Code\n2. Update Balance\n3. Exit\n"""
choice = raw_input()
if choice == '1':
subprocess.call("./k.sh")
我正在使用以下脚本将其输出通过管道传输到 python 脚本:
#!/bin/bash
tmp=/tmp/barcode.$$
zbarcam --raw /dev/video1 > $tmp &
pid=$!
# Sleep until file has content
while [[ ! -s $tmp ]] ; do
sleep 1
done
kill $pid
cat $tmp | ./inout.py
以下是我的 inout.py 文件:
#!/usr/bin/python
import sys
import MySQLdb as db
con = db.connect(server, user, pwd, database)
cur = con.cursor()
reg = sys.stdin.readline().strip()
vtype = sys.stdin.readline().strip()
make = sys.stdin.readline().strip()
print reg, vtype, make
cur.execute("update local set bal=%s where regno=%s", (newbal, regno))
con.commit()
con.close()
问题是这个文件在后台运行,因为我看不到输出print
(我知道它正在运行,因为数据库正在更新)。有时我想为错误代码或类似的东西打印某些语句,我怎样才能让这个文件在终端而不是后台运行。