我正在尝试解析管道分隔文件并将值传递到列表中,以便稍后我可以从列表中打印选择值。
该文件如下:
name|age|address|phone|||||||||||..etc
它有超过100列。
答案 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行。