Python TypeError:+;的操作数类型不受支持:';StringVar';和';str';//创建一个文本文件

Python TypeError:+;的操作数类型不受支持:';StringVar';和';str';//创建一个文本文件,python,file,text,tkinter,tkinter-entry,Python,File,Text,Tkinter,Tkinter Entry,我正在尝试创建一个脚本来创建一个文本文件,该文本文件的名称对应于用户输入的内容。这是我的密码: from tkinter import* fenetre = Tk() def creation(): open(f1 + '.txt', "w") Label1 = Label(fenetre, text = 'Nom de votre classe :') Label1.pack(side = LEFT, padx = 5, pady = 5) f1 = StringVar() Cham

我正在尝试创建一个脚本来创建一个文本文件,该文本文件的名称对应于用户输入的内容。这是我的密码:

from tkinter import*

fenetre = Tk()
def creation():
    open(f1 + '.txt', "w")
Label1 = Label(fenetre, text = 'Nom de votre classe :')
Label1.pack(side = LEFT, padx = 5, pady = 5)
f1 = StringVar()
Champ = Entry(fenetre, textvariable= f1, bg ='bisque', fg='maroon')
Champ.focus_set()
Champ.pack(side = LEFT, padx = 5, pady = 5)
Bouton = Button(fenetre, text ='Valider', command = creation())
Bouton.pack(side = LEFT, padx = 5, pady = 5)
fenetre.mainloop()
但它不起作用,并给出以下错误:

TypeError: unsupported operand type(s)s for +: 'StringVar' and 'str'

我成功创建了一次文件,但它没有名称。

要使用该值,需要调用
f1.get()
f1
本身不是字符串,而是可以容纳字符串的对象。对其调用
get()
方法将返回它所持有的实际字符串

def creation():
    open(f1.get() + '.txt', "w")

要使用该值,需要调用
f1.get()
f1
本身不是字符串,而是可以容纳字符串的对象。对其调用
get()
方法将返回它所持有的实际字符串

def creation():
    open(f1.get() + '.txt', "w")

感谢很多工作,我解决了另一个问题,我的脚本在启动它时创建了一个文件,我删除了Bouton=按钮后的()(fenetre,text='Valider',command=creation())感谢很多工作,我解决了另一个问题,我的脚本在启动它时创建了一个文件,我删除了Bouton=按钮后的()(fenetre,text='Valider',command=creation())