在python中解析管道分隔文件

时间:2013-04-11 18:29:11

标签: python python-3.x parsing delimiter-separated-values

我正在尝试解析管道分隔文件并将值传递到列表中,以便稍后我可以从列表中打印选择值。

该文件如下:

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

它有超过100列。

3 个答案:

答案 0 :(得分:28)

使用csv library

首先,注册您的方言:

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

答案 1 :(得分:14)

如果您正在解析实际字段值中不包含任何|字符的非常简单的文件,则可以使用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库用作mentioned below

答案 2 :(得分:6)

import pandas as pd

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

这会将文件存储在dataframe中。对于每列,您可以应用条件来选择要打印的所需值。执行时间非常短。我尝试了111047行。