解析Python中的管道分隔的文件(Parsing a pipe delimited file in

2019-08-22 01:19发布

我试图解析管道分隔的文件和值传递到一个列表,这样,以后我可以从列表中选择打印值。

该文件是这样的:

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

它拥有超过100列。

Answer 1:

如果你解析一个非常简单的文件,该文件将不包含任何| 在实际的字段值的字符,你可以使用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库作为下面提到 。



Answer 2:

使用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']


Answer 3:

import pandas as pd

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

这将存储在数据帧的文件。 对于每一列,你可以申请条件来选择所需的值进行打印。 它需要一个很短的时间来执行。 我试着用111047点的行。



文章来源: Parsing a pipe delimited file in python