从文本文件读取数据并使用Python放置在网格中

时间:2019-01-24 12:23:40

标签: python text tkinter

我有一个文本文件,其中的以下数据逐行显示为:

TC1

通过

TC2

失败

TC3

通过

现在,我想读取文本文件并以以下方式导入我的tkinter网格:

行0列0列1

第1行Tc1通行证

第2行TC2失败

第3行TC3通行证

我有以下代码,只是尝试读取以T开头的单词并将其放置在网格中

以open(textfile)作为openfile:

    for line in openfile:
        for part in line.split():
            i=0
            if line.startswith('T'):
                print line
                i=i+1
                Label(labelone,text=part,relief=RIDGE,width=16).grid(row=i,column=1)

当我在上面奔跑时,它给出为:

行0列0列1

第1排TC3

第2行

第3行

任何帮助将不胜感激。 谢谢

1 个答案:

答案 0 :(得分:0)

这里有几件事要注意。

1)照顾.txt文件中的空行。

2)进行迭代以使耦合结果像TC1 Pass一样。

3)向后追加/插入配对对。

方法:

创建一个包含.txt文件中所有数据的列表,然后进行迭代以获得配对的结果,以后可以将其插入到网格中。

logFile = "list.txt"

with open(logFile) as f:
    content = f.readlines()

# you may also want to remove empty lines
content = [l.strip() for l in content if l.strip()]

# flag
nextLine = False

# list to save the lines
textList = []

for line in content:
    find_TC = line.find('TC')

    if find_TC > 0:
        nextLine = not nextLine
    else:
        if nextLine:
            pass
        else:
            textList.append(line)

print('\n')
print('Text list ..')
print(textList)

j = 0
for i in range(j, len(textList)):
    if j < len(textList):
        print(textList[j], textList[j + 1]) # Insert into the gird here instead of print
        j = j + 2

输出:

  

文本列表..

     

['TC1','Pass','TC2','Fail','TC3','Pass']

     

TC1通行证

     

TC2失败

     

TC3通行证

编辑:

OP在文本文件中进行了新更改之后

j = 0
for i in range(j, len(textList)):
    if j < len(textList):
        print(textList[j], textList[j + 1], textList[j+2]) # Insert into the gird here instead of print
        j = j + 3