2016-08-31 1 views
0

Wie generiert man automatisch Registerkarten, um eine korrekte Strukturansicht einer generierten HTML-Datei zu erhalten?Formatieren des HTML-Stils in PyCharm

Zum Beispiel habe ich einen Code wie folgt bekommen:

def creating_html(self): 
    something ='''<table style="width:100%"> 
    <tr> 
     <th>Firstname</th> 
     <th>Lastname</th> 
     <th>Age</th> 
    </tr> 
    <tr> 
     <td>Jill</td> 
     <td>Smith</td> 
     <td>50</td> 
    </tr> 
    <tr> 
     <td>Eve</td> 
     <td>Jackson</td> 
     <td>94</td> 
    </tr> 
</table> 
''' 
    file.write(something) 

Dieser Code Code mit der richtigen Registerkarten usw. erzeugen, aber ich fühle, wie mein Code aus diesem Grund wirklich chaotisch ist, und ich denke auch, dass ich Ich verschwende Zeit, um nach einem guten Format zu suchen. Also habe ich über so etwas nachgedacht, um meinen Code ein wenig sauberer zu machen.

def creating_html(self): 
    something =''' 
      <table style="width:100%"> 
      <tr> 
      <th>Firstname</th> 
      <th>Lastname</th> 
      <th>Age</th> 
      </tr> 
      <tr> 
      <td>Jill</td> 
      <td>Smith</td> 
      <td>50</td> 
      </tr> 
      <tr> 
      <td>Eve</td> 
      <td>Jackson</td> 
      <td>94</td> 
      </tr> 
      </table> 
      ''' 
    file.write(something) 

aber jetzt ist das Format natürlich ungültig.

ich für eine gute Lösung gesucht und einer von ihnen wird nur öffnen Sie diese HTML-Datei, nachdem es mit PyCharm und verwenden Verknüpfung Ctrl Erzeugung + Alt + L. Ich suche nach einer Lösung, um es automatisch zu machen.

+0

@jonrsharpe danke für die Bearbeitung und Entschuldigung für mein chaotisches Englisch. Ich lerne immernoch. :) – degath

+0

Wie macht das Ihren Code sauberer? Es macht das Inline-HTML schwieriger zu lesen. Und wer wird es lesen, wenn es einmal generiert wird? – jonrsharpe

Antwort

2

können Sie schöne Suppe 4 verwenden Sie es mit pip Installation und verwenden Sie es wie folgt:

from bs4 import BeautifulSoup 
something =''' 
     <table style="width:100%"> 
     <tr> 
     <th>Firstname</th> 
     <th>Lastname</th> 
     <th>Age</th> 
     </tr> 
     <tr> 
     <td>Jill</td> 
     <td>Smith</td> 
     <td>50</td> 
     </tr> 
     <tr> 
     <td>Eve</td> 
     <td>Jackson</td> 
     <td>94</td> 
     </tr> 
     </table> 
     ''' 
messed_code= BeautifulSoup(something, 'html.parser') 
file.write(messed_code.prettify()) 

Ich persönlich denke, die Zeichenfolge im ersten Fall sieht besser aus, soweit es besser lesbar

ist
+0

eigentlich muss ich nicht an etwas arbeiten, weil ich eine Menge "Irgendwas" habe, was danach geklebt wird. Deshalb muss ich an dieser geschriebenen Datei arbeiten, aber ich werde mehr über diese beautifulSoup lesen Ich bin 99% sicher, dass es für mich arbeiten wird, danke :) – degath

+0

Ich denke, Sie könnten die Datei lesen und ihre Zeichenfolge weitergeben, um verschönere es mit schöner Suppe – Almasyx

+0

Ja, ich denke es ist eine gute Lösung, ich werde nach dem Abendessen versuchen, wirklich danke :-) – degath

1
from lxml import etree, html 
html_string =''' 
      <table style="width:100%"> 
      <tr> 
      <th>Firstname</th> 
      <th>Lastname</th> 
      <th>Age</th> 
      </tr> 
      <tr> 
      <td>Jill</td> 
      <td>Smith</td> 
      <td>50</td> 
      </tr> 
      <tr> 
      <td>Eve</td> 
      <td>Jackson</td> 
      <td>94</td> 
      </tr> 
      </table> 
      ''' 
html_object = html.fromstring(html_string) 
file.write(etree.tostring(html_object, pretty_print=True)) 
Verwandte Themen