Не знаю, как разделить .строки файла dat

#python-3.x

#python-3.x

Вопрос:

итак, у меня есть этот проект, которому нужно, чтобы я прочитал файл .dat и преобразовал его в таблицу, файл .dat выглядит следующим образом:

 50123456_lam tai man_70.0_60.0_
50223456_li tai man_60.0_90.5_
50323456_wong tai man_34.5_30.0_
50423456_ng tai man_90.5_70.0_
50523456_lau tai man_86.0_92.4_
50623456_chui tai man_70.0_64.5_
50723456_lim tai man_64.5_60.0_
50823456_pok tai man_37.5_35.50_
50923456_kim tai man_92.4_60.0_
50023456_tsang tai man_15.0_20.0_
50999999_chan peter_100.00_80.00_
  

Я хочу разделить строки по их подчеркиванию, чтобы я мог составить список с каждым элементом.
Поскольку я любитель, я могу теперь импортировать файлы только в свою программу, мне все еще нужно выяснить, как разделить строки на используемые переменные.

Это программа импорта, о которой идет речь:

 import matplotlib.pyplot as plt
import fileinput
import sys

def main():
    lineNum = 0
    for line in fileinput.input('markdata.dat'):
        lineNum  = 1
        sys.stdout.write(str(lineNum) ' ')
        sys.stdout.write(line)
    pass

if __name__ == "__main__":
    main()
  

Если кто-нибудь хотел бы помочь, я признателен.

Ответ №1:

Библиотека csv должна соответствовать вашим потребностям, если все, что вы хотите сделать, это разделить их символами подчеркивания. Вот пример; просто измените разделитель на подчеркивание.

 import csv

with open('my_sample_data.dat') as f: 
    reader = csv.reader(f, delimiter=',')

    for row in reader:
        print(row)

>>>
['Date', 'Time', 'Event', 'OrgID', 'Email']
['12/15/2018', '6:55:41 AM', 'abc', '1', 'abc@email.com']
['12/15/2018', '1:36:39 PM', 'def', '2', 'def@email.com']
['12/15/2018', '2:21:56 PM', 'com', '3', 'com@email.com']
  

Ответ №2:

Хороший способ справиться с такими файлами dat — использовать библиотеку pandas. Вы читаете этот файл в Dataframe и используете разделитель в качестве подчеркивания.

 import pandas as pd
df = pd.read_csv('sample.dat',delimiter='_',header=None)