如何使用非标准分隔符分割记录

时间:2015-09-23 04:19:50

标签: python data-analysis data-import

在我的csv文件中,我在括号之间用a分隔了以下记录:

(a1,a2,a3),(b1,b2,b3),(c1,c2,c3),(d1,d2,d3)

如何将数据拆分为一个列表,以便我得到更像这样的内容:

a1,a2,a3
b1,b2,b3
c1,c2,c3
d1,d2,d3

目前我的python代码如下所示:

dump = open('sample_dump.csv','r').read()
splitdump = dump.split('\n')
print splitdump

3 个答案:

答案 0 :(得分:0)

您可以采取以下措施:

  • 删除第一个和最后一个括号
  • ),(字符序列
  • 拆分

要按自定义字符串拆分,只需将其作为参数添加到拆分方法中,例如:

line.split("),(")

有点hacky,所以你必须根据输入数据格式的任何预期变化进行推广(例如,你的第一个/最后一个字符是否总是括号?)。

答案 1 :(得分:0)

尝试此操作,首先按"),"拆分然后再加入并再次按(拆分到没有括号的左元组

_line = dump.split("),")
_line = ''.join(_line).split("(")
print _line
>> ['', 'a1,a2,a3,', 'b1,b2,b3,', 'c1,c2,c3,', 'd1,d2,d3']
#drop first empty element
print _line.pop(0)
>> ['a1,a2,a3,', 'b1,b2,b3,', 'c1,c2,c3,', 'd1,d2,d3']

答案 2 :(得分:0)

首先,您需要执行所需的步骤才能获得结果,这是一个hacky解决方案:

  • 删除第一个和最后一个括号
  • 使用),(作为组分隔符,拆分
  • ,
  • 拆分每个组
  

line ='(a1,a2,a3),(b1,b2,b3),(c1,c2,c3),(d1,d2,d3)'

     

[group.split(',')for line in [1:-1] .split('),(')]