在Python中,如何在数字和文本之间放置分隔符?
在以下文本中放置分隔符时遇到问题。我想在文本之间以及随后的3个数字之间加一个“|”。问题是,有时数字实际上是破折号,表示0(即-,而不是0) 到目前为止,我可以使用以下代码获得大多数“|”分隔符:在Python中,如何在数字和文本之间放置分隔符?,python,text,delimiter,Python,Text,Delimiter,在以下文本中放置分隔符时遇到问题。我想在文本之间以及随后的3个数字之间加一个“|”。问题是,有时数字实际上是破折号,表示0(即-,而不是0) 到目前为止,我可以使用以下代码获得大多数“|”分隔符: text = re.sub(r'\s[(](\d)', '|(\\1', text) text = re.sub(r'\s(\d)', '|\\1', text) text = re.sub(r'\s-(\d)', '|-\\1', text) 这将产生: A line of text |85
text = re.sub(r'\s[(](\d)', '|(\\1', text)
text = re.sub(r'\s(\d)', '|\\1', text)
text = re.sub(r'\s-(\d)', '|-\\1', text)
这将产生:
A line of text |85 |25,653 |-75,321
Another - line |5,432 |(5,353) --
Another one |23 |-0- |86
One -- more --|-0-|34|25
但是,我希望在第4行的第二个之前有另一个分隔符,而不在一个和之间放置分隔符。在Python中有没有实现这一点的方法
我希望最终输出为:
A line of text |85 |25,653 |-75,321
Another - line |5,432 |(5,353) |--
Another one |23 |-0- |86
One -- more |--|-0-|34|25
使用Python:
这会在有空格的地方分割行,然后将三个数据列与
s和文本与
s连接在一起,然后在文本和数据之间添加最后一个
。这些选项卡是原始文件中列之间的吗?是否需要保留列之间的空格?这是不必要的。我只需要将第一列作为文本列,然后将其余的“number”列分隔开。如果有必要,可以删除空格,但我希望保留文本列中的间距(例如,一行文本,而不是Alineoftext)。您是否有一行五列,其余四列?或者它们都有相同的列数?有时有超过3列的行。但它们很少。如果可以很容易地为只有3列的行放置分隔符,我认为手动检查有4列的行不会花费太多精力。这非常有效。我想我只需要手动检查那些有4列的行。非常感谢。
A line of text |85 |25,653 |-75,321
Another - line |5,432 |(5,353) |--
Another one |23 |-0- |86
One -- more |--|-0-|34|25
for line in text.splitlines():
line = line.split()
if line:
print '|'.join((' '.join(line[:-3]), '|'.join(line[-3:])))