Как я могу записать определенные части текста из разных строк в несколько строк?

Поэтому в настоящее время я пытаюсь использовать Python для преобразования больших сумм данных в аккуратный и аккуратный файл .csv из файла .txt. На первом этапе мы пытаемся поместить 8-значные номера компаний в один столбец под названием «Номера компаний». Я создал заголовок, и мне просто нужно поместить каждый номер компании из каждой строки в столбец. Что я хочу знать, так это то, как мне заставить свой сценарий читать первые восемь символов каждой строки в файле .txt (которые соответствуют номеру компании), а затем записывать их в файл .csv? Это, вероятно, очень просто, но я только новичок в Python!

Пока что у меня есть что-то вроде этого:

with open(r'C:/Users/test1.txt') as rf:
    with open(r'C:/Users/test2.csv','w',newline='') as wf:
        outputDictWriter = csv.DictWriter(wf,['Company number'])
        outputDictWriter.writeheader()
        rf = rf.read(8)
        for line in rf:
            wf.write(line)


person Community    schedule 11.06.2020    source источник
comment
Строка rf = rf.read(8) выглядит неправильно. Вы изменили rf с идентификатора всего входного файла на идентификатор его первых 8 символов.   -  person jjramsey    schedule 11.06.2020
comment
Хорошо, спасибо, значит, rf = rf.read(8) должно читаться как Line = rf.read(8)? Что еще нужно было бы изменить?   -  person    schedule 11.06.2020
comment
Прежде чем я отвечу, я хотел бы знать, является ли это проблемой домашнего задания.   -  person jjramsey    schedule 11.06.2020


Ответы (1)


Я бы порекомендовал: 1) прочитать файл, 2) выполнить соответствующее преобразование, а затем 3) записать результаты в файл. У меня нет образцов данных, поэтому я не могу проверить, подходит ли мое решение именно для вашего случая.

with open('input.txt','r') as file_handle:
    file_content = file_handle.read()

list_of_IDs = []
for line in file_content.split('\n')
    print("line = ",line)
    print("first 8 =", line[0:8])
    list_of_IDs.append(line[0:8])

with open("output.csv", "w") as file_handle:  
    file_handle.write("Company\n")
    for line in list_of_IDs:
        file_handle.write(line+"\n")

Значение разделения этих шагов состоит в том, чтобы включить отладку.

person Ben    schedule 22.08.2020