我正在使用 Python 2.7 和 tkinter。
我有一个文本小部件,我用文本行填充,其中每一行都以文件中的“\n”结尾。文本小部件中的文本可以稍后修改。
现在我只想从 Text 小部件中获取文本,并忽略可能存在的任何尾随空行。get() 方法将获取到 Text 小部件末尾的所有内容,包括可能存在的任何尾随空行。
如何获取文本而不是尾随空行?
我正在使用 Python 2.7 和 tkinter。
我有一个文本小部件,我用文本行填充,其中每一行都以文件中的“\n”结尾。文本小部件中的文本可以稍后修改。
现在我只想从 Text 小部件中获取文本,并忽略可能存在的任何尾随空行。get() 方法将获取到 Text 小部件末尾的所有内容,包括可能存在的任何尾随空行。
如何获取文本而不是尾随空行?
文本小部件没有很好的方法来过滤掉您从中获得的结果get
。您可以使用 index 获取除 tkinter 自动添加的最后一个换行符之外的所有内容end-1c
,但如果最后有多个空行,最简单的方法是在获取数据后去除换行符:
data = the_widget.get("1.0", "end-1c").rstrip("\n")
另一种方法是使用search
从末尾向后的方法,使用正则表达式查找第一个非空行。然后,您可以获取所有文本直到该行的末尾:
index = text.search('^.+', "end", backwards=True, regexp=True)
data = text.get("1.0", f"{index} lineend") if index else ""