Разобрался, всё хорошо пишется, настройку кодировки допишу немного позже.
import re
output_file = open('output.csv','wt')
s = re.findall("[А-я\s.]+[;][\d\.]+\s[\d\:]+[;][\d\.]+\s[\d\:]+[;]",open("testcsv.csv").read(), re.M)
for row in s:
output_file.write(row)
output_file.close()
Однако всплыла другая проблема, связанная с тем, что выходит на выходе.
В моей таблице попадаются места вроде этого:
Иванов И.И.
17.04.2016 7:47 17.04.2016 20:08
18.04.2016 8:00 18.04.2016 18:20
То есть последние две строки относятся к Иванову И.И., однако шаблон первую строку не пропускает и данные выпадают. Притом в таблице так же есть строки с сотрудниками, которые не посещали предприятие за указанный период, соответственно в них пустые ячейки с временем прихода-ухода. Пока не совсем пойму как отловить подобные случаи (хотя строки, в которых заполнены ячейки только времени прихода-ухода, шаблон вылавливает). Нужно считанную из файла таблицу преобразовывать в строку и редактировать подобные случаи таким образом:
Иванов И.И. 17.04.2016 7:47 17.04.2016 20:08
18.04.2016 8:00 18.04.2016 18:20
Или же на уровне применения шаблона каким-то образом сравнивать текущую и следующую строку, во время прохода по списку. Например в случае если ячейки со временем пустые проверять заполнены ли ячейки со временем на следующей строке.
Отредактировано coffe4wolf (Май 11, 2016 13:52:54)