如何创建一个tkinter文本输入的数组,每行文本为数组中的一个元素
我有这段代码:
def full_function():
options=text.get(1.0, END)
print options
from Tkinter import *
root = Tk()
text = Text(root,font=("Purisa",12))
text.pack()
button=Button(root, text ="Button", command =lambda: full_function())
button.pack()
root.mainloop()
我该如何让这个程序创建一个文本输入的数组,也就是说每一行文本都应该是数组中的一个元素。例如,如果输入是:
I am here.
They are there.
那么我希望我的应用程序能创建出以下列表=["我在这里。", "他们在那里。"]
2 个回答
0
使用 split
方法可以把输入的内容分成一个列表,然后用 str(text.get(1.0, END))
来去掉前面的 unicode "u"
字符。
def full_function():
options = str(text.get(1.0, END))
lines = options.strip().split("\n")
print lines
['I am here.', 'They are there.']
1
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这种时候,我们可以去一些技术论坛,比如StackOverflow,去寻找解决办法或者向其他人提问。
在这些论坛上,很多人会分享他们的经验和解决方案。你可以看到其他人遇到的类似问题,以及他们是如何解决的。这就像一个大家一起讨论和解决问题的地方。
如果你在论坛上提问,记得描述清楚你的问题,包括你遇到的错误信息和你尝试过的解决方法。这样其他人才能更好地帮助你。
总之,StackOverflow是一个很有用的资源,可以帮助你解决编程中的各种问题。
from Tkinter import *
#Below should pack to class
class MyWindow:
def __init__(self, wname=""):
self.root = Tk()
self.root.title(wname)
self.text = Text(self.root,font=("Purisa",12))
self.text.pack()
self.button=Button(self.root, text ="Button", command=self.prn)
self.button.pack()
self.root.mainloop()
def get_words_list(self, widget):
"""Return list of words"""
options=widget.get(1.0, END)# get lines into string
#Remove spaces in list of lines
return [i.strip() for i in options.splitlines()]
def prn(self):
"""Testing get_words_list"""
print self.get_words_list(self.text)
if __name__ == "__main__":
w = MyWindow("My window")