Чтение данных из текстового файла и размещение в сетке с использованием Python - PullRequest
0 голосов
/ 24 января 2019

У меня есть текстовый файл с данными ниже, слово за строкой:

ТС1

Pass

СК2

Сбой

ТС3

Pass

Теперь я хотел бы прочитать текстовый файл и импортировать его в свою сетку tkinter как:

Строка 0 column0 column1

Строка 1 Tc1 Pass

Строка 2 TC2 Fail

Строка 3 TC3 Pass

У меня есть код ниже, и я просто пытаюсь прочитать слово, начинающееся с буквы T, и поместите его в сетку:

с открытым (текстовый файл) в качестве открытого файла:

    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 column0 column1

Строка 1 TC3

Строка 2

Строка 3

Любая помощь будет принята с благодарностью. Спасибо

1 Ответ

0 голосов
/ 24 января 2019

Здесь следует отметить пару вещей.

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 Pass

TC2 Fail

TC3 Pass

EDIT:

После новых изменений 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...