TypeError: unsupported operand type(s)s for +: 'StringVar' and 'str' // Create a text file

TypeError: unsupported operand type(s)s for +: 'StringVar' and 'str' // Create a text file

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

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() 方法 returns 它持有的实际字符串。

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