/ / Parsowanie pliku rozdzielanego potokami w pythonie - python, python-3.x, parsowanie, separatory separujące wartości

Parsowanie pliku rozdzielanego potokami w pythonie - python, python-3.x, parsowanie, wartości rozdzielone separatorem

Próbuję parsować plik rozdzielany potokami i przekazywać wartości do listy, aby później móc wydrukować wybrane wartości z listy.

Plik wygląda następująco:

name|age|address|phone|||||||||||..etc

Ma więcej niż 100 kolumn.

Odpowiedzi:

14 dla odpowiedzi № 1

Jeśli "parsujesz" bardzo prosty plik, który nie zawiera żadnych | znaki w rzeczywistych wartościach pola, możesz użyć split:

fileHandle = open("file", "r")

for line in fileHandle:
fields = line.split("|")

print(fields[0]) # prints the first fields value
print(fields[1]) # prints the second fields value

fileHandle.close()

21 dla odpowiedzi nr 2

Użyj biblioteka csv.

Najpierw zarejestruj swój dialekt:

import csv
csv.register_dialect("piper", delimiter="|", quoting=csv.QUOTE_NONE)

Następnie użyj swojego dialektu na pliku:

with open(myfile, "rb") as csvfile:
for row in csv.DictReader(csvfile, dialect="piper"):
print row["name"]

3 dla odpowiedzi nr 3
import pandas as pd

pd.read_csv(filename,sep="|")

Spowoduje to zapisanie pliku w ramce danych. Dla każdej kolumny możesz zastosować warunki, aby wybrać wymagane wartości do wydrukowania. Wykonanie trwa bardzo krótko. Próbowałem z 111047 rzędami.