Python:如何将一个变量与另一个变量和字符串混合在一起?

时间:2019-04-04 23:22:26

标签: python-3.x tkinter

我正在用python开发一种编码语言,我希望人们能够将自己的代码保存在具有自己文件名的文件中。

我尝试对它进行编码,但它不断出现错误:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
这是我当前的代码:

import os

root = Tk()

def save_name():
    global file_title
    save_namewindow = Toplevel(root)
    save_namewindow.title("Save")
    Label(save_namewindow, text="Name the File").pack()
    file_title = Entry(save_namewindow).pack()
    Button(save_namewindow, text="Save", command=save).pack()

def save():
   file_name = (file_title + ".txt")
   if os.path.isfile(file_name):
       if messagebox.askyesno("File Exists", "Would you like to overwrite the existing file '" + file_name + "'?"):
         os.remove(file_name)
         file = open(file_name, "x")
         file.write(shell.get("1.0", END))
         file.close()
   else:
     file = open(file_name, "x")
     file.write(shell.get("1.0", END))
     file.close()

我希望答案是:file_name = file_title + '.txt'以正确的方式。 预先感谢。

1 个答案:

答案 0 :(得分:0)

我在代码中看到两个错误

第一

file_title = Entry(save_namewindow).pack()

它将None分配给file_title,因为pack()返回None
因此您无权访问Entry
您必须分两个步骤完成

file_title = Entry(save_namewindow)
file_title.pack()

现在您可以访问Entry

第二:

要从Entry获取文本,您必须使用.get()。这意味着file_title.get()

所以您需要

file_name = file_title.get() + ".txt"