首页 > 解决方案 > python在文本tkinter中插入字符串列表时在每一行添加{}

问题描述

当我尝试在ScrolledText框中显示列表时遇到 python 问题。

我的代码打开一个.txt文件,读取每一行并将其显示在ScrolledText框中。下面你可以看到我的代码的一小部分

from tkinter import *
from tkinter import ttk
from tkinter.scrolledtext import *
from tkinter.filedialog import askopenfilename
from tkinter import filedialog

def cargar_trazas():
    lista_trazas_sistema = []
    lista_trazas_subsistema = []
    global contenido_trazas
    
    path_trazas = askopenfilename( filetypes = (("all files","*.*"),("text files","*.txt"),("log files","*.log")))
    archivo_trazas = open(path_trazas,'r')
    contenido_trazas = archivo_trazas.readlines()
    fichero_trazas_text.insert(INSERT, contenido_trazas)


fichero_trazas_text = ScrolledText(miFrameTextoTrazas, width=130, heigh=10)
fichero_trazas_text.grid(row=0, column=1, padx=10, pady=10)

问题是当文件显示在每一行的滚动文本中时,python 会添加{ }.

在此处输入图像描述

为什么python会这样做?在称为contenido_trazas这些字符的列表中不出现{ },只看到ScrolledText

是否可以选择丢弃这些字符,以免它们出现?

谢谢

标签: pythontkintertextbox

解决方案


这样做是因为您将列表或元组传递给insert,但它需要一个字符串。tkinter 只是 tcl/tk 解释器的包装器,tcl 在将列表转换为字符串时使用花括号来保留列表结构。因此,在将列表传递给需要文本的小部件方法时,您会得到花括号(或有时是反斜杠)。

最简单的解决方案是使用read()而不是readlines().


推荐阅读