У меня есть текстовый файл с информацией о 1000 студентах, поэтому мне нужно сохранить данные каждого студента в таблице Excel.

Вот образец данных:

0000:
     name=Jack
     Age=16
     Grade=90
0001:
     name=Max
     Age=18
     Grade=85
0002:
     name=Kayle
     Age=17
     Grade=92

Я хочу получить такой результат:

enter image description here

-5
JohnK 16 Фев 2021 в 15:09

2 ответа

Лучший ответ

Использовать панды и диктант довольно просто:

with open('file.txt', 'r') as f:
    lines = f.readlines()

students = []
student = {}
for line in lines:
    if ':' in line:
        student['id'] = line.split(':')[0]
    elif 'name' in line:
        student['Name'] = line.split('=')[1].replace('\n','')
    elif 'Age' in line:
        student['Age'] = line.split('=')[1].replace('\n','')
    elif 'Grade' in line:
        student['Grade'] = line.split('=')[1].replace('\n','')
        students.append(student)
        print(student)
        student = {}
    
import pandas as pd
df = pd.DataFrame(students)
df.to_excel("output.xlsx")
print(df)
0
Joaquín 16 Фев 2021 в 13:14

Я всегда использую Word для такой работы. С помощью функции «Заменить» найдите знаки абзаца и замените их символом табуляции.

Например. замените :[paragraph mark][space][space][space][space]name= на [tab character]. Таким образом вы избавитесь от мусора и получите 0000[tab character]Jack.

Когда вы закончите со всеми строками данных, разделенных табуляцией, выберите все строки с данными (убедитесь, что не выбрали пустые строки без трех символов табуляции, иначе это не сработает) и нажмите Вставить -> Таблица -> Вставить таблицу ... Теперь данные преобразованы в таблицу Word. Просто скопируйте таблицу в Excel, и все готово.

0
ffonz 16 Фев 2021 в 13:28
66224055