我目前正试图用我之前完成的相同任务帮助一位朋友,但我卡住了。一旦程序运行并获得门票'按下此错误信息显示:
在处理上述异常期间,发生了另一个异常:
追踪(最近一次通话): 文件" C:\ Python34 \ lib \ tkinter__init __。py",第1533行,调用 return self.func(* args) 文件" C:\ Users \ harding \ Documents \ Oli \ Homework \ Year10 \ Computing \ New folder \ carpark 3.4(1).py",第21行,在reg_output中 b.readlines(v.get()) TypeError:期望的整数参数,得到' str'
代码:
from tkinter import *
import time
root = Tk()
root.title('Car Park')
v = StringVar()
car_in=Label(root, text= "Please enter your reg number")
car_in.grid(column=1, row=1)
reg_input=Entry(root, textvariable =v)
reg_input.grid(column=1, row=2)
def reg_input():
with open ('tickets.txt', 'w') as b:
b.writelines(v.get())
def reg_output():
with open ('tickets.txt', 'r') as b:
b.readlines(v.get())
reg_input_but=Button(root, text='Submit', command=reg_input)
reg_input_but.grid(column=1, row=4)
reg_output_b=Button(root, text='Get Ticket', command=reg_output)
reg_output_b.grid(column=1, row=5)
答案 0 :(得分:1)
v是一个Stringvar,因此v.get()返回一个字符串。 b.readlines(lines)要求行为整数,因为行确定应该读取多少行。如果省略参数,它将读取所有行。
答案 1 :(得分:0)
查看错误,函数readlines
需要整数参数,v.get()
返回一个字符串,从而导致错误。您可以做的只是将第21行的b.readlines(v.get())
更改为b.readlines()
以修复错误。
这是编辑后的代码。
from tkinter import *
import time
root = Tk()
root.title('Car Park')
v = StringVar()
car_in=Label(root, text= "Please enter your reg number")
car_in.grid(column=1, row=1)
reg_input=Entry(root, textvariable =v)
reg_input.grid(column=1, row=2)
def reg_input():
with open ('tickets.txt', 'w') as b:
b.writelines(v.get())
def reg_output():
with open ('tickets.txt', 'r') as b:
b.readlines()
reg_input_but=Button(root, text='Submit', command=reg_input)
reg_input_but.grid(column=1, row=4)
reg_output_b=Button(root, text='Get Ticket', command=reg_output)
reg_output_b.grid(column=1, row=5)