pysunred 发表于 2023-4-10 17:09:49

tkinter text控件的获取数据的问题

友友好,
       我们有个文档,需要每周更新下自己部分的内容。我把自己需要更新的内容打包成字典,再插入text控件中。
现在我想在text控件中修改相关内容,
然后再把这些内容进行打包成列表,
请问,如何获取text控件中的内容呢?

以下是把内容插入到text控件中的代码。
title是列表,cases是字典,title是cases的关键字。
# 内容显示格式
    content = '{}'
    for item in cases:
      for i in title:
            text_container.insert(INSERT,
                                     content.format(str(i) + ':' + str(item.get(i)) + '\n\n'))
我修改了text控件中的部分内容,
该如何将text控件中的内容反向变成列表或字典呢?
万分感谢!!!

isdkz 发表于 2023-4-10 17:12:24

您可以使用Tkinter中的Text控件的get()方法来获取文本内容。您可以将获取的文本按照您需要的格式进行处理,以得到您想要的列表或字典。

例如,假设您的text控件名为text_container,您可以使用以下代码获取文本内容:

text_content = text_container.get('1.0', 'end-1c')

其中,'1.0'表示从第1行第0列开始,'end-1c'表示到最后一个字符,不包括换行符。得到文本内容后,您可以按照您的需要将其转换为列表或字典。

如果您的文本内容是按照一定的格式排列的,例如每行表示一个键值对,可以使用split()方法将文本按行分割为一个列表,然后再对每个元素进行进一步的处理,以得到字典或其他数据结构。

下面是一个示例代码,假设您的文本内容是以每行一个键值对的形式排列的,每行的键和值之间用冒号隔开,可以按照如下方式将文本转换为字典:

text_content = text_container.get('1.0', 'end-1c')
text_lines = text_content.split('\n')
cases_dict = {}
for line in text_lines:
    if ':' in line:
      key, value = line.split(':')
      cases_dict = value.strip()

在上述代码中,我们首先使用split()方法将文本按行分割为一个列表text_lines,然后对每个元素进行进一步的处理,

使用split()方法将每行的键和值分割,并使用strip()方法去除空格和换行符,最终得到一个字典cases_dict。

wuliangtdi 发表于 2023-4-10 18:48:01

要获取text控件中的内容,可以使用Tkinter中的get()方法。该方法可以获取text控件中指定范围的文本内容。

例如,如果要获取整个text控件中的文本,可以使用以下代码:
text_content = text_container.get("1.0", "end")

这将返回从第一行第一个字符到最后一行最后一个字符的所有文本内容。如果要获取特定范围内的文本,可以修改参数。例如,如果要获取第二行第一个字符到第五行最后一个字符的文本,可以使用以下代码:
text_content = text_container.get("2.0", "5.end")

要将文本内容转换回字典或列表,可以根据文本的格式进行解析。例如,如果每个条目都是"key: value"的格式,可以使用以下代码将文本转换为字典:
text_content = text_container.get("1.0", "end")
cases_dict = {}
for line in text_content.split("\n"):
    if ":" in line:
      key, value = line.split(":")
      cases_dict = value.strip()

这将解析每一行并将其转换为字典中的键值对。如果每个条目的格式不同,需要相应地修改解析代码。
解答来自ChatGPT

pysunred 发表于 2023-4-12 11:40:36

isdkz 发表于 2023-4-10 17:12
您可以使用Tkinter中的Text控件的get()方法来获取文本内容。您可以将获取的文本按照您需要的格式进行处理, ...

感谢,友友的耐心指导,谢谢!!
页: [1]
查看完整版本: tkinter text控件的获取数据的问题