Я беру большой текстовый файл, который содержит несколько таблиц результатов испытаний, которые содержат разные заголовки. Я хотел бы создать файл CSV для каждого конкретного теста с его данными, избегая жесткого кодирования открытых файлов.
Большой текстовый файл выглядит так:
Тест заголовка 1
Тест 1 ряд данных
Тест 1 ряд данных
Тест 1 ряд данных
Тест 1 ряд данных
Тест 1 ряд данных
Тест заголовка 3
Тест 3 строки данных
Тест 3 строки данных
Тест заголовка 2
Тест 2 строки данных
Тест 2 строки данных
Тест 2 строки данных
Тест 2 строки данных
Тест заголовка 1
Тест 1 ряд данных
Тест 1 ряд данных
Тест 1 ряд данных
Тест 1 ряд данных
Тест заголовка 2
Тест 2 строки данных
Тест 2 строки данных
... и т. д. случайный порядок результатов испытаний.
Выходными данными должны быть три файла CSV для каждого теста.
Смотрите код ниже для того, что я пробовал.
for line in raw_test_data:
if line.endswith(header info):
current_header = line
else:
# test name is always in same column
test = line.split(",")[1]
if test not in testsuite:
testsuite.append(test)
# is this the proper use for data dictionary??
# maybe use instead of testsuite.append to check
file_dictionary[test] = str(path + "\\" + folder + "\\" + test + ".CSV")
current_output_file = open(file_dictionary[test], "w+")
# if file empty, it needs the header
if os.path.getsize(file_dictionary[test]) > 0:
output_file.writelines(current_header)
# write row of data to file
output_file.writelines(line)
# would love to avoid opening/closing everytime
output_file.close()
Файлы, которые мне нужны, создаются, но только с одной строкой, в то время как я ожидаю current_header и все строки в тесте. Могу ли я избежать открытия и закрытия файлов каждый цикл? Любой совет?