0

我正在使用 Python 2.7 和 tkinter。

我有一个文本小部件,我用文本行填充,其中每一行都以文件中的“\n”结尾。文本小部件中的文本可以稍后修改。

现在我只想从 Text 小部件中获取文本,并忽略可能存在的任何尾随空行。get() 方法将获取到 Text 小部件末尾的所有内容,包括可能存在的任何尾随空行。

如何获取文本而不是尾随空行?

4

1 回答 1

0

文本小部件没有很好的方法来过滤掉您从中获得的结果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 ""
于 2020-09-01T22:02:30.030 回答