Python实现超市扫码仪计费系统:串口通信与数据库集成

慢慢来
慢慢来
发布时间:2026-10-13| 2人浏览过
原创

本文介绍基于Python的超市扫码仪计费程序实现。核心利用串口通信读取商品条形码,结合MySQL数据库查询商品信息并计算总费用。文中提供了完整的Python代码示例,涵盖serial库与MySQLdb库的使用,并详细解析了中文乱码处理及数据库编码配置等关键技术细节,适合Python初学者参考学习。

该Python程序旨在实现超市扫码仪的计费功能,核心逻辑是通过扫码仪读取商品条形码,获取对应商品信息并完成费用统计。系统主要依赖串口通信技术,并需操作数据库。运行环境需配置Python解释器、MySQL数据库服务器,以及Python的serial和MySQLdb相关库。

程序执行流程如下:首先通过扫码仪扫描商品条形码,利用串口通信接口接收条形码数据;随后根据该条形码从数据库中检索对应的商品信息,并在界面显示商品详情及累计总费用。商品信息可预先导入或手动录入数据库,本例采用预导入方式(亦支持边扫边录)。导入至数据库的商品信息结构如下:

程序具体实现代码如下:

#coding:utf8 
 
import serial 
import MySQLdb 
 
ser = serial.Serial('COM5',9600) 
 
 
#获取一行信息 
def recv(serial): 
 data = '' 
 while serial.inWaiting() > 0: 
  data += serial.read(1) 
  
 return data 
 
 
def GetInfo(db,data): 
 data = data[0:-1] #最后面有一个空格,需要去掉,否则会影响读数据库 
 print data 
 ret = 0.0 
 try: 
  cur = db.cursor() 
  sql="set names utf8" #这一条语句是告诉数据库编码方式为 utf8 
  cur.execute(sql) 
 
  sql = "select * from productinfo where code=%s"%(data) 
  #print sql 
  cur.execute(sql) 
  #sql = "select * from productinfo where(code=%s)" 
  #cur.execute(sql,data)   
  results = cur.fetchall() 
  #print results 
  for row in results: 
   code = row[0] 
   #print code 
   price = row[1] 
   #print price 
   info = row[2] 
   #print info 
   ret = price 
   #解析出来的信息可能为中文,直接print肯定是不行的,需要转化为windows下的GBK编码 
   print 'coding=',row[0],'price=',row[1],'info=',info.decode('UTF-8').encode('GBK')    
 except: 
  print 'it has no infomation about %s'%(data) 
 
 return ret 
 
 
db = MySQLdb.connect('localhost','root','',"zou",3306,'utf8') 
cursor = db.cursor() 
 
#cursor.execute("DROP TABLE IF EXISTS productinfo") 
 
''''' 
sql="""CREATE TABLE productinfo( 
  code CHAR(18), 
  price double(9,2), 
  info CHAR(25))""" 
cursor.execute(sql) 
''' 
   
sum = 0.0   
while True: 
 data = recv(ser) 
 if data != '': 
  #print data 
  sum += GetInfo(db,data) 
  print '总付款:',sum 
  
 
db.close() 
ser.close() 

由于作者初学Python,代码规范性仍有提升空间,欢迎读者提出修改建议。程序最终运行效果如下所示:

程序中已解决中文显示乱码问题(初期可能出现乱码),具体方案在前文博客中已有论述,关键在于统一数据库及从数据库读取数据的编码格式。若读者发现代码错误或有任何优化建议,欢迎在评论区留言交流。

以上内容为本文全部分享,希望能为读者提供学习帮助,同时也感谢大家对本平台的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。