LinuxForum.Fans
Тема

split: сохранить первую строку в каждый файл

Автор: axe 4 сообщений 3085 просмотров
#337801

Мне надо разбить большой csv файл на части по 100000 строк. В csv-файле есть заголовки и их нужно добавить к каждой части.
На stackoverflow видел решение в несколько строчек, но мне очень хочется найти решение в одну строку, пусть и длинную, т.к. вызов split происходит из python-скрипта.
Подскажи́те?

#337804
"axe⇓" написал:
На stackoverflow видел решение в несколько строчек, но мне очень хочется найти решение в одну строку, пусть и длинную, т.к. вызов split происходит из python-скрипта.

Запишите тот скрипт в одну строчку или, в конце концов, запишите отдельным скриптом, его и вызывайте.
Но правильнее — решить эту задачу средствами Python'а ;)

#337850

Судя по всему, файлы большие, поэтому целиком лучше не читать. Навскидку как-то так:

text

#!/usr/bin/env python
#_*_ coding: utf-8 _*_

def writer(header, part, outfilename): with open(outfilename, 'w') as z: z.write(header) z.writelines(part)

with open('file.txt', 'r') as f: header = f.readline() partnum = 0 linecounter = 1 part = [] for line in f: if linecounter < 100000: part.append(line) linecounter += 1 else: part.append(line) outfilename = "out%d.txt" % partnum writer(header, part, outfilename) partnum += 1 linecounter = 1 part = [] if len(part) > 0: outfilename = "out%d.txt" % partnum writer(header, part, outfilename)

#337853

Спасибо за ответы,
я сделал разделение файлов в питоне.

Войдите или зарегистрируйтесь, чтобы ответить.