petropavel: (Default)
[personal profile] petropavel
Я решил в порядке самостоятельного изучения Python-а небольшие примеры разбирать (а то и писать) вместе с коллегой.
Примерно так, как было в анекдоте про лектора: "третий раз объяснил, уже сам понял, а они всё не понимают!!"

Первый пример: есть директория (с вложенными поддиректориями), в них лежат файлы с именами, сформированными по некоторому правилу. Нужные нам директории именуются по дате (в формате YYYYMMDD), + рекурсивно всё, что внутри.
Задача - отобрать файлы позднее определённой даты (по имени папки), перекодировать из MS-DOS в Windows-кодировку, сложить в общую папку кучей.
Пригодился модуль os (os.getcwd(), os.path.join(), os.walk() ), срезы строк, списки списков, списки туплов и пр (os.walk вообще благодатный пример, чтобы увидеть, что такое "простые" питоньи структуры данных).
Также файловые объекты, readlines(), итерация по readlines().
Из хулиганских побуждений впихнул туда ещё и лямбду:

outfile.writelines( map ( lambda s: s.decode("cp866").encode("cp1251"), infile.readlines() ))


Второй пример, из файла
счёт АКТПАСС 1(или 2)
счёт АКТИВ_ВХ сумма
счёт ПАССИВ_ВХ сумма
счёт ОБОРОТ_ДЕБ сумма
счёт ОБОРОТ КРЕ сумма
....

сделать такой:
счёт,А(П),сумма_вх_актив,сумма_вх_пассив,оборот_деб,оборот_кред,...
другой_счёт,А(П),сумма_вх_актив,сумма_вх_пассив,оборот_деб,оборот_кред,...

Тут удалось показать, что такое словари (получился словарь словарей), keys(), has_key(), sort()

Третий пример, для души - слить на диск содержимое веб-форума, для оффлайнового чтения.
Есть страничка-список тем, считать, отобрать оттуда ссылки определённого вида (на сами темы),
сохранить на диск сами темы, и рядышком сформировать оглавление index.html, корректно ссылающееся на сохранённые файлы.
Пригодились urllib (urllib2), регулярные выражения.
Заточки под общий случай веб-форума не требовалось, парсер строить решили не заморачиваться.

Правда, ещё не дописали - неплохо бы модифицировать ссылки на предыдущую-следующую тему внутри страничек, и до кучи скачивать аттачменты. Самый шик был бы ещё и вырезать из страничек шапки-подвалы-баннеры, но это уже потом.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

petropavel: (Default)
petropavel

September 2018

S M T W T F S
       1
2345678
9101112131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 30th, 2025 08:25 pm
Powered by Dreamwidth Studios