在文本tkinter中插入字符串列表时,python在每行中添加{}

2024-09-30 01:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图在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会添加{ }

enter image description here

python为什么会这样做?在名为contenido_trazas的列表中,这些字符不显示{ },仅在ScrolledText框中显示

是否有放弃这些字符的选项,以便它们不会出现

谢谢


Tags: 文件代码textfromimporttxt列表tkinter
1条回答
网友
1楼 · 发布于 2024-09-30 01:19:50

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

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

相关问题 更多 >

    热门问题