2016-08-24 5 views
0

私は別々の行に整理したい大きな生データセットを持っています。データは区切られます。私は編成したいので、1行に8つの区切り文字があり、そのあとに1つの場所があり、次に新しい行が続きます。大きなデータセットを別々の行に整理する

生データ:

468 | 2016年6月17日||モバイル|応答|スポーツ| sport.football.england ||ロンドン468 | 2016年6月16日||モバイル|応答|スポーツ|スポーツ.football.european ||ヨークシャーとハンバー468 | 2016年6月18日||モバイル|応答|スポーツ| sport.football.england ||ロンドン

所望の出力:

468 | 2016-06- 17 ||モバイル|レスポンシブ|スポーツ|スポーツ|フットボール|イギリス|ロンドン

468 | 2016-06-16 ||モバイル|レスポンシブ|スポーツ| sport.football.europe私は今、この

を持ってAkashさんkarothiyaから助け以下sport.football.england ||ロンドン

| ||ヨークシャーとハンバー

468 | 2016年6月18日||モバイル|応答|スポーツ

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が印刷されます。なぜですか?この例では、ヨークシャーとハンバーは1行の最後にあるはずです:

['468 | 2016-06-17 ||モバイル|レスポンシブ|スポーツ| sport.football.international.england.story.36558237。ページ||ロンドン\ n468 | 2016-07-03 ||モバイル|応答性|スポーツ| sport.football.european_championship.2016.media_asset.36695497.page ||ロンドン\ n06b | 2016-06-21 ||コンピュータ|応答性|ニュース|ニュース|ニュース|ヨークシャーと '、' humber \ n468 | 2016-06-18 ||モバイル|レスポンシブ|スポーツ| sport.football.international.england.story.36558237.page || london ']

+0

をしてください? –

+0

非常に簡単な問題のようです。あなたはこれまでに何を試しましたか、そしてなぜ働いていないのですか?あなたはファイル内のデータを持っていますか? – eguaio

+0

@ Tiger-222入力データはファイル内にあるものと同じですが、目的のデータは達成したいデータです。ありがとうございます。 –

答えて

1

あなたはこの試みることがありますが、入力データの一部を追加でき

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'] 
+0

私の出力は実際の新しい行の代わりに "\ n"と印刷されているようですが、これはなぜですか? –

関連する問題