python - 类型错误 : unsupported operand type(s)s for +: 'StringVar' and 'str' //Create a text file

标签 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()
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")

关于python - 类型错误 : unsupported operand type(s)s for +: 'StringVar' and 'str' //Create a text file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120631/

相关文章:

r - fwrite 是否锁定文件以供同时读取

file - 文本文件浏览器

java - 有没有办法在 JFrame 中的图片内添加文本?

python - 如何指定请求以 JSON 格式返回数据?

python - 如何访问我之前保存在 IDLE 和/或 Jupyter 中的 .py 文件?

javascript - 使用 javascript(带有 ASCII 代码)的 html 凯撒密码需要帮助

python - 文字游戏问题

python - Python 代码可以像 Javascript 一样被压缩吗?

python - 在 Python 3 中写入文件时,TypeError : a bytes-like object is required, 不是 'str'

algorithm - 数据如何存储在文本框中?