簡體   English   中英

解析 Python 中的豎線分隔文件

[英]Parsing a pipe-delimited file in Python

我正在嘗試解析一個以豎線分隔的文件並將值傳遞到一個列表中,以便稍后我可以從列表中打印選擇性值。

該文件如下所示:

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

它有 100 多個列。

使用csv庫

首先,注冊您的方言:

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

然后,在文件上使用您的方言:

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

如果您要解析一個非常簡單的文件,其中不包含任何| 實際字段值中的字符,可以使用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()

編輯:解析表格數據的更可靠的方法是使用csv庫, 如下所述

import pandas as pd

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

這會將文件存儲在數據框中。 對於每一列,您可以應用條件以選擇要打印的所需值。 執行時間很短。 我嘗試了111047行。

在 2022 年,使用 Python 3.8 或更高版本,您可以簡單地執行以下操作:

import csv

with open(file_path, "r") as csvfile:
    reader = csv.reader(csvfile, delimiter='|')
    for row in reader:
        print(row[0], row[1])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM