Analysieren eine plain-text-Datei in eine CSV-Datei mit Python

Ich habe eine Reihe von HTML-Dateien, die analysiert werden, in einem einzigen text-Datei mit Schöne Suppe. Die HTML-Dateien sind so formatiert, dass deren Ausgang ist immer aus drei Zeilen in der text Datei, also die Ausgabe wird ungefähr so Aussehen:

Hello!
How are you?
Well, Bye!

Aber es könnte genauso gut sein,

83957
And I ain't coming back!
hgu39hgd

In anderen Worten, der Inhalt der HTML-Dateien sind nicht wirklich standard für jeden von Ihnen, aber Sie produzieren immer drei Zeilen.

So, ich Frage mich, wo ich anfangen soll, wenn ich wollen, dann nehmen Sie die text-Datei, die erzeugt wird von der Schönen Suppe, und analysieren, dass in einer CSV-Datei mit Spalten wie (im obigen Beispiele):

Title   Intro   Tagline
Hello!    How are you?    Well, Bye!
83957    And I ain't coming back!    hgu39hgd

Den Python-code für das "stripping" HTML aus text-Dateien, ist dies:

import os
import glob
import codecs
import csv
from bs4 import BeautifulSoup

path = "c:\\users\\me\\downloads\\"

for infile in glob.glob(os.path.join(path, "*.html")):
    markup = (infile)
    soup = BeautifulSoup(codecs.open(markup, "r", "utf-8").read())
    with open("extracted.txt", "a") as myfile:
        myfile.write(soup.get_text())

Und ich nehme an, ich kann verwenden Sie diese Option, um die Spalten in der CSV-Datei:

csv.put_HasColumnNames(True)

csv.SetColumnName(0,"title")
csv.SetColumnName(1,"intro")
csv.SetColumnName(2,"tagline")

Wo ich bin Zeichnung leer ist, wie zum Durchlaufen der Textdatei (extracted.txt) eine Zeile zu einem Zeitpunkt und, wie ich an eine neue Linie, stellen Sie es auf die richtige Zelle in der CSV-Datei. Die ersten paar Zeilen der Datei sind leer, und es gibt viele leere Zeilen zwischen jeder Gruppierung von text. Also, als erstes würde ich brauchen, um die Datei zu öffnen und es zu Lesen:

file = open("extracted.txt")

for line in file.xreadlines():
    pass # csv.SetCell(0,0 X) (obviously, I don't know what to put in X)

Auch, ich weiß nicht, wie zu sagen, Python, einfach weiter das Lesen der Datei und das hinzufügen, um die CSV-Datei, bis es fertig ist. In anderen Worten, es gibt keine Möglichkeit, genau zu wissen, wie viele Zeilen werden in HTML-Dateien und so kann ich nicht nur csv.SetCell(0,0) to cdv.SetCell(999,999)

benutzt niemand .xreadlines mehr for line in file
Ich bin mir nicht sicher, ob ich verstehe, was du versuchst zu tun. Sind Sie versuchen, Lesen Sie die extracted.txt Datei, ignorieren leere Zeilen, und jede Gruppe von drei Zeilen in einer einzigen Zeile in einer CSV-Datei?
Ah, fast. Ich bin versucht zu Lesen die erste von drei Linien und legen Sie es auf "Titel" und die zweite der drei Linien und legen Sie es auf "intro" und die Dritte von drei Zeilen, und legen Sie es auf "tagline", und überspringen Sie dann den weißen Raum, bis ich an den nächsten drei Zeilen, und dann tun Sie es wieder.
Auch, es gibt Leerzeichen zwischen dem ersten "Titel" und oben in der Datei.
Ich denke ich muss an fileIN = open(sys.argv[1], "r") und Zeile = fileIN.readline(). Aber ich kann nicht herausfinden, wie das überspringen der Leerzeichen, oder was zu tun mit dem text, sobald ich es bekommen?

InformationsquelleAutor Zac Brown | 2013-04-27

Schreibe einen Kommentar