操作系統是Windows 7 x64(運行Python x86),但代碼需要導出到Windows XP和Ubuntu Linux。Python條碼掃描器緩衝區未清除
這部分問題可能是Windows 7 x64特定的。
我使用的是兼容HID Keyboard的USB條形碼掃描儀。
我在我的keyboard.py文件存在的文件夾中打開命令提示符並執行它。
第一次完美運行並退出,OK。
當我在同一窗口中重新運行時,掃描儀數據似乎被緩衝,並且在進行新掃描時不再發生變化。
我試圖關閉使用的代碼:
.flush() .readline() and .read() all to no avail. Is this a flaw in Win7 or am I missing something.
CODE:
import sys
x = ''
oStr = ''
#while x != 'exit':
while True:
x = sys.stdin.read(1)
if (x.find('\n') != -1) or (x.find('\04') != -1):
break
oStr = oStr + x
print 'Output String: ' + oStr #+ '\n'
Output:
d:\ Python項目\鍵盤輸入> keyboard.py [)> 0617V33SR41P12973001S10515725 輸出字符串:[]> 0617V33SR41P12973001S10515725
D:\ Python Projects \ Keyboard Input> keyboard.py [)> 0617V33SR41P12973001S10515725
第二次運行檔位,如圖所示。但是,第二次掃描以23而不是25結束!
如果我按輸入腳本完成。進一步的掃描是相同的。
嘗試sys.stdin.readline()。帶()的,而不是分析標準輸入自己。我認爲這應該給你你正在尋找的結果。 – Claris