用逗号分割python并忽略引号中的那个

时间:2013-04-20 18:25:03

标签: python split

目前,我想解析一个csv文件,每行有4个项目并用逗号分隔。例如:

1, "2,3", 4, 5

如何将其拆分为:

[1,"2,3",4,5]

我尝试使用csv.reader,但结果仍然是错误的。有人可以帮忙吗? THX!

2 个答案:

答案 0 :(得分:2)

csv.reader不会进行类型转换,但可能会这样:

In [1]: import csv

In [2]: data = ['1, "2,3", 4, 5']

In [3]: next(csv.reader(data, skipinitialspace=True))
Out[3]: ['1', '2,3', '4', '5']

答案 1 :(得分:0)

"""
[xxx.csv]
1, "2,3", 4, 5
"""

import re
f = open("xxx.csv")
line = f.readline() # line = '1, "2,3", 4, 5'
startUnit = False # " is for start or end
token = ""
answer=[]
for i in line:
    if startUnit==False and re.match("[0-9]", i):
        answer.append(int(i))
    elif i=='"':
        if startUnit==True:
            answer.append(token)
        startUnit = not startUnit
    elif startUnit==True:
        token+=i
    elif startUnit==False:
        token=""

print answer

这是一个简单的例子。 它可以产生其他异常,因为代码仅适用于您的示例。 (1,“2,3”,4,5) 我希望它对你有所帮助