Эксперт в области разработки веб-приложений и безопасности в интернете. Каждый месяц мой блог посещают около 90 тысяч человек. Работаю техническим директором в «Системах документооборота», занимаюсь электронным правительством.
# coding: utf-8
import sys
import re
from datetime import date
from itertools import islice
output = []
with open(sys.argv[1], 'r') as f:
for line in islice(f, 1, None):
n, detail, arr, flow = line.decode('cp1251').split(';')[4:8]
if n[:4] == 'BERR' or n[:6] == 'CASHIN': continue
flow = float(flow.replace(',', '.'))
if flow > 0:
dates = re.findall(r'\d{2}\.\d{2}\.\d{2}', detail, re.UNICODE)
if dates:
d = min(date(*(int(x) for x in d.split('.')[::-1])) for d in dates)
output.append({
'detail': detail,
'flow': flow,
'date': d,
})
for k in sorted(output, lambda x, y: cmp(x['date'], y['date'])):
data = zip(('y', 'm', 'd',), k['date'].timetuple()[:3]) + k.items()
print "%(d)02d.%(m)02d.%(y)02d %(flow)09s %(detail)s" % dict(data)
