#!python # -*- coding: iso-8859-2 -*- ## kocio, 4.08.2006, public domain ## Konwersja tabeli HTML o dowolnych rozmiarach na tabele z lista adresowa import sys import re import string ## Otwieranie pliku wejsciowego try: infile = open(sys.argv[1]) except: ## jesli brak parametru, to domyslnie "index.html" try: infile = open("index.html","r") except: print "Brak pliku wejsciowego (nawet index.html)!" ## Otwieranie pliku wyjsciowego try: outfile = open(sys.argv[2]) except: ## jesli brak parametru, to domyslnie "stykierki-lista.html" outfile = open("stykierki-lista.html","w") ## Wczytujemy zawartosc pliku wejsciowego i sklejamy w jeden wiersz ## (inaczej trzeba robic regexpy wieloliniowe) tresc = string.join(infile.read().splitlines()) ## Wyszukujemy wszystkie elementy "td", czyli komorki tabeli ## uwaga: tag otwierajacy moze miec postac z opcjami, czyli ! ## uwaga: .* jest zachlanne, dopiero .*? ogranicza sie tylko do najblizszego dopasowania komorki = re.findall("", tresc) ## Teraz trzeba zamienic ten dlugi wiersz w dluga kolumne i zapisac jako HTML ## naglowek HTML outfile.write("" + "\r\n" + "
" + "\r\n") ## zaznaczamy kodowanie CP1250, bo pierwotna tresc tabeli jest w tym kodowaniu outfile.write("" + "\r\n") outfile.write("
" + "\r\n") ## naglowek tabeli z nazwa kolumny outfile.write("" + "\r\n" + "" + "\r\n") outfile.write("" + "\r\n") for komorka in komorki: ## konwersja do stringu i zamkniecie wiersza tabeli, zeby wyszla kolumna komorka_string = "" + str(komorka) + "" + "\r\n" ## jesli tylko ma kod pocztowy (czyli jest prawidlowym adresem)... kod = "[0-9][0-9]-[0-9][0-9][0-9]" ## do cwiczenia regexpow =} if re.search(kod, komorka_string): ## ...to zapis do pliku kolejnej komorki outfile.write(komorka_string) ## stopka HTML outfile.write("
adres
" + "\r\n" + "" + "\r\n" + "") ## Zamykamy pliki dla porzadku infile.close outfile.close