Дан файл CSV с таблицей:
В первом столбце фамилии сотрудников с инициалами. Во втором столбце указывается время прихода сотрудника на работу, в третьем время ухода.
ФИО Первый приход Последний уход
Boscolo L.
Munhos de Campos E.
Абашидзе А.А.
.
.
.
Андросова А.Ю. 10.02.2014 14:09 16.04.2014 15:48
.
Записей в таблице больше 1000, необходимо выбрать из таблицы только те строки, в которых есть время прихода и ухода (их штук 10-15 из тысячи).
Нашёл модуль CSV, для работы с файлами данного формата, но не всё идёт гладко.
В планах выбирать подходящие под условие строки (есть значения в трёх колонках(фио, время прихода, время ухода) и записывать их в новый CSV файл.
Для начала решил попытаться записать все строки из входящего файла в новый
import csv input_file = open('testcsv.csv','rt') reader = csv.reader(input_file) output_file = open('output.csv','wt') writer = csv.writer(output_file) for row in reader: writer.writerow(row)
1. Не могу ограничить количество записываемых строк. В качестве тестового костыля попробовал поставить условие
if int(row) == 1000: break
Попробовал вывести через print(row), вывел он мне "". Отсюда второй вопрос
2. Как получился такой итерируемый объект, откуда он взял такой список и как с ним управляться?
3. Строки в CSV файлах по какой-то причине пишутся через строку:
Строка со значением
Пустая строка
Строка со значением
Однако при записи всех строк из одного файла в другой он записывает и пустые строки. В итоге получается
Строка со значением
Пустая строка
Пустая строка
Строка со значением
Почему он так делает и возможно ли вести запись не через строку, а в каждой строке? Или нужно будет отрезать пустые строки при выборке?