我正在玩 Python,但遇到了问题。我有一个大数据文件,其中每个字符串的结构如下:
"id";"userid";"userstat";"message";"2013-10-19 06:33:20 (date)"
我需要将每行分成 5 部分,分号是分隔符。但同时在报价范围内。
这很难解释,所以我希望你明白我的意思。
该格式看起来很像ssv
:分号分隔的值(如“csv”,但分号而不是逗号)。我们可以使用该csv
模块来处理这个问题:
import csv
with open("yourfile.txt", "rb") as infile:
reader = csv.reader(infile, delimiter=";")
for row in reader:
print row
生产
['id', 'userid', 'userstat', 'message', '2013-10-19 06:33:20 (date)']
这种方法的一个优点是它会自动正确处理引用数据中的分号大小写。
使用str.split
,不需要正则表达式:
>>> strs = '"id";"userid";"userstat";"message";"2013-10-19 06:33:20 (date)"'
>>> strs.split(';')
['"id"', '"userid"', '"userstat"', '"message"', '"2013-10-19 06:33:20 (date)"']
如果您也不想要双引号,那么:
>>> [x.strip('"') for x in strs.split(';')]
['id', 'userid', 'userstat', 'message', '2013-10-19 06:33:20 (date)']
您可以根据自己的情况进行拆分";"
,也可以考虑使用正则表达式,例如^("[^"]+");("[^"]+");("[^"]+");("[^"]+");("[^"]+")$