這是我的代碼:
import qrcode
from tkinter import *
from tkinter import filedialog
root=Tk()
def choosefile():
global file
file=filedialog.askopenfile(mode='r',title='Choose a File')
choosefilebutton=Button(root,text='Choose a File',command=choosefile)
choosefilebutton.pack()
def submit():
qr=qrcode.make(file)
qr.save('qrcode.png')
choosefilebutton=Button(root,text='Submit',command=submit)
choosefilebutton.pack()
root.mainloop()
它生成一個二維碼,但是當我掃描二維碼時,結果是:
<_io.TextIOWrapper name='/Users/charliezhang/Desktop/hello.png' mode='r' encoding='UTF-8'>
我是 Python 新手,還不太了解所有內容,有人可以幫忙嗎?
uj5u.com熱心網友回復:
您只能獲得檔案路徑和名稱資料askopenfile。應該是這樣的:
f = open(file.name)
qr = qrcode.make(f.read())
f.close()
uj5u.com熱心網友回復:
在 Py 3.8.10 中,以下作業:
def submit():
if file:
qr = qrcode.make(file.read())
qr.save('qrcode.png')
這里,file從回傳filedialog.askopenfile()的不是一個字串而是一個類似檔案的物件。因此,添加.read()從檔案中提取資料。該filedialog.askopenfilename()方法回傳一個字串,它是檔案的名稱。
我還添加了對檔案的檢查,因為如果用戶從“打開檔案”對話框中點擊“取消”按鈕,則會file將其設定為“無”。因此,執行此檢查有助于防止用戶在之后點擊提交按鈕時出現另一個錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/357586.html
上一篇:我可以連接從tkinter下拉選單派生的2個字串,并使用該結果來參考字典嗎?[復制]
下一篇:樹視圖不適合框架
