0

我正在玩 Python,但遇到了问题。我有一个大数据文件,其中每个字符串的结构如下:

"id";"userid";"userstat";"message";"2013-10-19 06:33:20 (date)"

我需要将每行分成 5 部分,分号是分隔符。但同时在报价范围内。

这很难解释,所以我希望你明白我的意思。

4

3 回答 3

4

该格式看起来很像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)']

这种方法的一个优点是它会自动正确处理引用数据中的分号大小写。

于 2013-10-21T17:01:48.177 回答
3

使用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)']
于 2013-10-21T16:56:27.457 回答
0

您可以根据自己的情况进行拆分";",也可以考虑使用正则表达式,例如^("[^"]+");("[^"]+");("[^"]+");("[^"]+");("[^"]+")$

于 2013-10-21T16:59:29.220 回答