#!python# -*- coding: iso-8859-2 -*-## kocio, 4.08.2006, public domain## Konwersja tabeli HTML o dowolnych rozmiarach na tabele z lista adresowaimport sysimport reimport string## Otwieranie pliku wejsciowegotry: 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 wyjsciowegotry: 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 <td> moze miec postac z opcjami, czyli <td costam>!## uwaga: .* jest zachlanne, dopiero .*? ogranicza sie tylko do najblizszego dopasowaniakomorki = re.findall("<td.*?</td>", tresc)## Teraz trzeba zamienic ten dlugi wiersz w dluga kolumne i zapisac jako HTML## naglowek HTMLoutfile.write("<html>" + "\r\n" + "<header>" + "\r\n")## zaznaczamy kodowanie CP1250, bo pierwotna tresc tabeli jest w tym kodowaniuoutfile.write("<meta http-equiv=Content-Type content=text/html; charset=windows-1250>" + "\r\n")outfile.write("</header>" + "\r\n")## naglowek tabeli z nazwa kolumnyoutfile.write("<body>" + "\r\n" + "<table border=1>" + "\r\n")outfile.write("<tr><td><center><b>adres</b></center></td></tr>" + "\r\n")for komorka in komorki: ## konwersja do stringu i zamkniecie wiersza tabeli, zeby wyszla kolumna komorka_string = "<tr>" + str(komorka) + "</tr>" + "\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 HTMLoutfile.write("</table>" + "\r\n" + "</body>" + "\r\n" + "</html>")## Zamykamy pliki dla porzadkuinfile.closeoutfile.close