问题描述
我能够连接到外部数据库,但是在尝试从结果生成二维码时却遇到此错误。
import pymssql,pandas as pd,openpyxl,pyqrcode,os
QRCode(content=b'0001-87L58/1',error='H',version=2,mode='alphanumeric')
Traceback (most recent call last):
File "C:/Users/MSE/PycharmProjects/qrcode_gen/CIN_from_Server.py",line 25,in <module>
qr.eps(PIN +'.eps',scale=2.5,module_color='#36C')
File "C:\Users\MSE\PycharmProjects\Python4everyone\venv\lib\site-packages\pyqrcode\__init__.py",line 624,in eps
background,quiet_zone)
File "C:\Users\MSE\PycharmProjects\Python4everyone\venv\lib\site-packages\pyqrcode\builder.py",line 1461,in _eps
f,autoclose = _get_writable(file_or_path,'w')
File "C:\Users\MSE\PycharmProjects\Python4everyone\venv\lib\site-packages\pyqrcode\builder.py",line 924,in _get_writable
stream_or_path = open(stream_or_path,mode)
FileNotFoundError: [Errno 2] No such file or directory: '0001-87L58/1.eps'
我的代码:
import pymssql,os
#Connecting to Db using Pymssql library
host = "myHost"
username = "mine"
password = "mine#$"
database = "external"
conn = pymssql.connect(host,username,password,database) #connecting string
read_query = " Select * FROM dbo.M_tblPIN WHERE TI = 'A01' "
mycursor = conn.cursor()
mycursor.execute(read_query)
result = mycursor.fetchall()
for item in result:
PIN = item[12]
# using pyqrcode to create the barcode
qr = pyqrcode.create(PIN)
print(qr)
qr.eps(PIN + '.eps',scale=5,module_color='#36C')
qr.eps(PIN + '.eps',background='#eee')
如何生成qrcode并将其保存在外部目录中?
解决方法
回溯中的最后一行是这样的:
FileNotFoundError:[错误2]没有这样的文件或目录:'0001-87L58 / 1.eps'
因此item[12]
不仅包含文件名,还包含目录名(不存在)。因此,Python无法将文件写入不存在的目录,并引发异常。请先创建目录,或者确保您位于子目录所在的目录中。