我目前正在尝试运行一个将永远循环的脚本,但出于某种原因,如果我在IDE中的覆盆子pi上运行它将永远循环,但是一旦我在启动时通过终端/命令行执行它一次扫描后崩溃或退出
import sqlite3
conn = sqlite3.connect('barcode.db')
cursor = conn.cursor()
def create_table():
cursor.execute('CREATE TABLE IF NOT EXISTS Barcode(Barcode TEXT)')
create_table()
while True:
barcode = input("Scan barcode: ")
print("Barcode scanned: " + barcode)
cursor.execute("INSERT INTO Barcode VALUES (?)", [barcode])
conn.commit()
提前感谢您提供任何帮助
答案 0 :(得分:0)
通过评论中的错误消息明确了该问题:
"TypeError: cannot concatenate 'str' and 'long' objects
Python 3中不存在long
类型。我不确定如何将其配置为在启动时运行,但它使用的是Python 2解释器。对于您的特定脚本:
barcode = input("Scan barcode: ")
print("Barcode scanned: " + barcode)
违规代码。 Python 2中的input
将自动在输入上调用eval()
,在这种情况下,它可以将其转换为数字。如果你真的希望在Python 2中运行它,那么你需要raw_input
,但是那个代码将不会在Python 3中运行,因为raw_input
被删除了。
我认为解决方案将改为python myscript.py
到python3 myscript.py
。如果您正在使用NOOBS,那么您应该已经使用过NOOBS。