将大型数据集组织成单独的行

Organise large dataset into separate lines

我有一个大型原始数据集,我想将其组织成单独的行。数据被分隔。我想组织起来,一行中有 8 个分隔符,后跟一个位置,然后是新行。

原始数据:

468|2016-06-17||移动|响应|运动|sport.football.england||伦敦 468|2016-06-16||移动|响应|运动|sport.football.european||约克郡和亨伯河 468|2016-06-18||移动|响应|运动|sport.football.england||伦敦

期望的输出:

468|2016-06-17||移动|响应|运动|sport.football.england||伦敦

468|2016-06-16||移动|响应|运动|sport.football.european||约克郡和亨伯

468|2016-06-18||移动|响应|运动|sport.football.england||伦敦

在 akash karothiya 的帮助下,我现在有了这个

data = open("raw_data.txt", "r")
new = []
for i in data.read().split(' '):
    if '|' in i:
        new.append(i)
    else:
        new.append(str(new[-1]) + ' ' + i )
        new.remove(new[-2])
print(new)

但这会导致打印 \n 而不是换行,为什么?在此示例中,Yorkshire 和 Humber 应位于一行的末尾:

['468|2016-06-17||移动|响应式|运动|sport.football.international.england.story.36558237.page||london\n468|2016-07-03||移动| responsive|sport|sport.football.european_championship.2016.media_asset.36695497.page||London\n06b|2016-06-21||Computer|responsive|news|news.page|news |约克郡和', 'humber\n468|2016-06-18||Mobile|responsive|sport|sport.football.international.england.story.36558237.page||london']

你可以试试这个:

data = '''468|2016-06-17||Mobile|responsive|sport|sport.football.england||london 468|2016-06-16||Mobile|responsive|sport|sport.football.european||west midlands 468|2016-06-17||Mobile|responsive|sport|sport.football.england||india'''

new = []
for i in data.split(' '):
    if '|' in i:
        new.append(i)
    else:
        new.append(str(new[-1]) + ' ' + i )
        new.remove(new[-2])
print(new)

['468|2016-06-17||Mobile|responsive|sport|sport.football.england||london',
 '468|2016-06-16||Mobile|responsive|sport|sport.football.european||west midlands',
 '468|2016-06-17||Mobile|responsive|sport|sport.football.england||india']