Я считаю, что вашу проблему можно решить, взяв входной файл и превратив его в CSV-файл, который затем можно импортировать в любую программу, которая вам нравится.
Я написал небольшой генератор, который будет читать файлстрока за раз и возвращает строку после определенного количества строк, в данном случае 60. В этом генераторе вы можете вносить любые необходимые изменения в данные.
Затем с каждой сгенерированной строкой янапишите это непосредственно в CSV.Это должно поддерживать требования к памяти для этого процесса довольно низкими.
Я не понимаю, что вы делаете с разделением регулярных выражений, но было бы достаточно просто добавить его в генератор.
import csv
OUTPUT_FILE = "/home/ashfaque/Desktop/File handling/outputfile.csv"
INPUT_FILE = "/home/ashfaque/Desktop/File handling/inputfile.txt"
# This is a generator that will pull only num number of items into
# memory at a time, before it yields the row.
def get_rows(path, num):
row = []
with open(path, "r", encoding="ISO-8859-1") as f:
for n, l in enumerate(f):
# apply whatever transformations that you need to here.
row.append(l.rstrip())
if (n + 1) % num == 0:
# if rows need padding then do it here.
yield row
row = []
with open(OUTPUT_FILE, "w") as output:
csv_writer = csv.writer(output)
for r in get_rows(INPUT_FILE, 60):
csv_writer.writerow(r)