如何避免在引号内的分隔符拆分?
我在处理数据时遇到了问题。我有一个CSV文件,里面的数据是这样的:
"a";"b";"c;d";"e"
问题是,当我使用 line.split(";")
这个函数时,它会把 c
和 d
也分开。我不想让 c
和 d
被分开。之后我需要把这四个值存储到表格的四列中,但用这个函数我得到了五列。
我希望结果是 "a" "b" "cd" "e"
。
我试过用 line.split('";"')
,但是没有效果。
2 个回答
0
在其他情况下,可以使用 shlex.split() 这个函数。
12
import csv
reader = csv.reader(open("yourfile.csv", "rb"), delimiter=';')
for row in reader:
print row
试试这个。
import csv
reader = csv.reader(open("yourfile.csv", "rb"), delimiter=';', quoting=csv.QUOTE_NONE )
for row in reader:
print row
这个 ^^^ 如果你想保留引号的话
编辑:如果你想把字段内容中的 ';'
去掉(比如 'c;d'
变成 'cd'
),你可以对返回的行进行后处理,像这样:
import csv
reader = csv.reader(open("yourfile.csv", "rb"), delimiter=';', quoting=csv.QUOTE_NONE )
for row in reader:
print [item.replace(';', '') for item in row]