我是python初学者,需要您的帮助。我需要在regex找到的某些位置上以CSV格式拆分列。 应用于CSV的分割会产生错误。此外,某些发现在各列中分布不均。
CSV的结构如下:
a; b; c;
d; e, f, g; h
i; j,e; k
我需要在每个e之后进行拆分,并像这样转换CSV:
a; ; b; c;
d; e; f, g; h
i; j; e; k
我有此代码:
import csv
import re
r = re.compile("r'....\(...\)")
with open('test.csv', 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=';')
your_list = list(reader)
your_list=r.split(your_list)
print(your_list)
我遇到此错误:
TypeError:预期的字符串或类似字节的对象
答案 0 :(得分:1)
不确定这是否正确,但是您的特定错误来自尝试将字符串列表传递给正则表达式匹配器。您需要将每个字符串分别传递给它。
代替
your_list = list(reader)
your_list=r.split(your_list)
写
your_list=[r.split(x) for x in reader]
编辑:没关系,此答案假设reader
是文件句柄而不是CSV阅读器。
CSV阅读器返回可迭代的可迭代项。我现在怀疑这不是正确的方法,但是如果您想分割CSV的每个单元格,则需要编写
your_list=[
[r.split(cell) for cell in row]
for row in reader
]