Tabela html w pythonie
Data: 2017-12-24, autor: Michał MisztalWedług mnie nie ma niczego gorszego niż tabele w html. Masa niemożliwych do wyobrażenia znaczników. Jeden błąd i wszystko się rozlatuje. W PHP całość się nieco prostuje bo tabelę można utworzyć automatycznie. Co jeśli nie mamy dostępu do backendu?
Kolejny przydatny skrypcik w Pythonie - automatyczne tworzenie tablicy ze znacznikami html. Całość jest prosta - brak col- czy rowspanów i dodatkowych znaczników.
Do thead() trafiają nagłówki i na tej podstawie jest liczona ilość kolumn (self.x). Jeśli ilość kolumn dla danych jest inna niż dla nagłówka to wyskoczy informacja w której linii dane się nie zgadzają. thead() jest opcjonalne. A kod wygląda tak
#! python3
class Tab():
def __init__(self):
self.table = ''
self.x = 0
self.naglowek = ''
self.dane = ''
def tab(self):
self.table = '<table>\n%s\n</table>\n' % (self.table)
def thead(self,naglowki):
self.naglowek = '<thead>\n<tr>\n<th>%s</th>\n</tr>\n</thead>\n' % ('</th><th>'.join(naglowki))
self.x = len(naglowki)
def tbody(self,dane):
self.dane += '<tbody>'
i = 0
for v in dane:
i += 1
if self.x != len(v):
print('Niezgodność danych w linii '+str(i))
self.dane += '\n<tr><td>%s</td></tr>' % ('</td><td>'.join(v))
self.dane += '\n</tbody>'
def pokaz(self):
self.table = self.naglowek+self.dane
self.tab()
return self.table
#przykładowa tabela
t = Tab()
t.thead(['a','b','c'])
t.tbody([
['1a','1b','1c'],
['2a','2b','2c']
])
print(t.pokaz())
Można jeszcze użyć modułu pyperclip, żeby wysłać tablicę do schowka lub wyeksportować ją do pliku.