0

嗨,所以我很难从 Python 上的程序中获取文本以转换为字符串,这样我就可以将其写入文件,而无需在文件中写入数字。我把这段代码:

from tkinter import *

a = Tk()
a.title("i need help")
a.geometry("600x600")

entryText = StringVar(None)

codeEdit = Text(a)
codeEdit.insert(END, "")
codeEdit.pack(side='top')

text = str(codeEdit)

def setLoc():
    saveFile = open("DATA\Test.txt", "w")
    saveFile.write(text)
    saveFile.close()


    return 

writeButton = Button(text="Write",command=setLoc)
writeButton.pack(side='bottom')

所以这就是将 obj locFile 写入文件 Test.txt 的代码,但是当我在程序的文本框中键入内容并点击 writButton 时,它会写入文件,而不是我在其中输入的内容 .50132192 所以我想要知道如何将其转换为字符串?

4

1 回答 1

0

您需要使用Text小部件的get方法将所有文本从'1.0'(line 1, character 0) 获取到END.

这是在write_text函数中执行此操作的代码的修改版本。我还添加了滚动条并切换到使用grid而不是包。

from tkinter import *
from tkinter import ttk

def write_text():
    text = edit.get('1.0', END)
    with open("DATA/Test.txt", "w") as f:
        f.write(text)

root = Tk()
root.title("This May Help")
root.geometry("600x600")

edit = Text(root, width=80, height=25, wrap=NONE)
edit.insert('1.0', '[enter text]')
edit.grid(column=0, row=0, sticky=(N,W,E,S))

yscroll = ttk.Scrollbar(root, orient=VERTICAL, command=edit.yview)
yscroll.grid(column=1, row=0, sticky=(N,S))
edit['yscrollcommand'] = yscroll.set

xscroll = ttk.Scrollbar(root, orient=HORIZONTAL, command=edit.xview)
xscroll.grid(column=0, row=1, sticky=(W,E))
edit['xscrollcommand'] = xscroll.set

write_button = Button(text="Write", command=write_text)
write_button.grid(column=0, row=2)
于 2013-03-29T16:24:23.417 回答