Я хочу разбить (в реальной жизни: огромный) файл на несколько файлов, указанных, скажем, вторым столбцом в данных. То есть в приведенном ниже примере мне нужны файлы 431.csv
и rr1.csv
.
Моя основная идея заключалась в том, чтобы открывать новые соединения для записи, если они еще не открыты - запись об открытых соединениях находится в dict files_dict
, а затем повторять это и закрывать в конце.
Я застрял в том, как ссылаться на эти соединения построчно.
В реальной жизни количество и значение этих имен файлов (второй столбец) заранее неизвестны.
Нашел вдохновение здесь:
запись нескольких файлов одновременно
Python вставляет переменную строку в качестве имени файла
Как разделить текстовый файл на несколько текстовых файлов с помощью Python?
Содержимое данных игрушки в data_in
:
123,431,t
43,rr1,3
13,rr1,43
123,rr1,4
Мой наивный псевдокод на данный момент:
files_dict = dict() #dict of file names
with open(data_in) as fi:
for line in fi:
x = line.split(',')[1]
if x not in files_dict:
fo = x + '.csv'
files_dict[x] = fo
'''
open files_dict[x]
write line to files_dict[x]
'''
else:
'''
write line to files_dict[x]
'''
for fo in files_dict.fos:
fo.close()