我的数据格式如下:

###John###
someData1
someData2
SomeData3
###Mike###
someData1
someData2
###Ford###
someData1
someData2
SomeData3
someData4
someData5
SomeData6

我希望输出为:
John  someData1
      someData2
      someData3

Mike  someData1
      someData2

Ford  someData1
      someData2
      someData3
      someData4
      someData5
      someData6

这里的问题是数据的数量(somedata?)每一个名字下面都有不同的名字,并不为人所知我唯一需要处理的是表示新名称开头的前导###字符。
Somedata?是一个单词。你知道怎么做吗?

最佳答案

以下给出了所需的确切输出:

from sys import stdout

with open('file') as f:
    for n,line in enumerate(f):
        if line.startswith('###'):
            stdout.write(('' if not n else '\n')+line.strip('#\n'))
        else:
            stdout.write('\t'+line)

输出:
John    someData1
        someData2
        SomeData3

Mike    someData1
        someData2

Ford    someData1
        someData2
        SomeData3
        someData4
        someData5
        SomeData6

关于python - 将单列分成两部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15882960/

10-09 13:41