使用xvkbd读取条形码。如何禁用回车键?
我在我的网页应用中使用 zbarcam 从网络摄像头读取条形码。可是,由于 zbarcam 在最后会显示一个换行符(\n),导致我的表单被提交。
这是我使用的内容:
read_one.py
#!/usr/bin/python
from sys import argv
import zbar
import webbrowser
# create a Processor
proc = zbar.Processor()
# configure the Processor
proc.parse_config('enable')
# initialize the Processor
device = '/dev/video0'
if len(argv) > 1:
device = argv[1]
proc.init(device)
# enable the preview window
proc.visible = True
# read at least one barcode (or until window closed)
proc.process_one()
# hide the preview window
proc.visible = False
# extract results
for symbol in proc.results:
# do something useful with results
print symbol.data
keyboard.sh
python read_one.py | xvkbd -file -
我该怎么做才能在把条形码发送给 xvkbd 之前去掉这个换行符,或者在 xvkbd 中禁用回车键呢?
2 个回答
1
要去掉换行符:
print symbol.data.strip()
不过,直接用一个可以管道传输的程序来处理这个问题其实不太好。你可以直接从你的程序发送到xvkbd(如果你不介意把字符串作为参数传递,就不需要文件了):
import subprocess # at appropriate place
subprocess.call(['xvkbd', '-text', symbol.data.strip()])
这样也就避免了再启动一个新的命令行和脚本来运行。
1
试试这个:
printf "$(python read_one.py)" | xvkbd -file -