从bash管道输出到python,脚本在后台运行

时间:2013-04-28 15:22:04

标签: python bash

我正在使用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的输出(我知道它正在运行,因为数据库正在更新)。有时候我会想要为错误的代码或类似的东西打印某些语句,如何让这个文件在终端而不是后台运行。

0 个答案:

没有答案