All pastes #115536 Raw Edit

kocio

public python v1 · immutable
·published 2006-08-04 17:38 UTC
rendered paste body
#!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