我正在用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'
以正确的方式。
预先感谢。
答案 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"