ライブラリを使用してください: あなたのデータが整形されていると仮定しています。実際の世界のデータのほとんどはそうではありません。だから、ここで解決策を探る。
>>> content.split('~')
['\nEngland\nLink: http://imgur.com/foobar.jpg\nCapital: London\n', '\nIceland\nLink: http://imgur.com/foobar2.jpg\nCapital: Reykjavik\n', '\nEngland\nLink: http://imgur.com/foobar.jpg\nCapital: London\n', '\nIceland\nLink: http://imgur.com/foobar2.jpg\nCapital: Reykjavik\n']
CSVを書き込むために、Pythonには標準ライブラリ関数があります。あなたのデータをより半構造化されたか、ひどくフォーマットされている場合
>>> import csv
>>> csvfile = open('foo.csv', 'wb')
>>> fieldnames = ['Country', 'Link', 'Capital']
>>> writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
>>> for entry in entries:
... cols = entry.strip().splitlines()
... writer.writerow({'Country': cols[0], 'Link':cols[1].split(': ')[1], 'Capital':cols[2].split(':')[1]})
...
は、PyParsingのようなライブラリを使用することを検討してください。
編集: 第2列にはURLが含まれているため、分割をうまく処理する必要があります。
>>> cols[1]
'Link: http://imgur.com/foobar2.jpg'
>>> cols[1].split(':')[1]
' http'
>>> cols[1].split(': ')[1]
'http://imgur.com/foobar2.jpg'
あなたが望む最終出力の例を挙げることができますか? – lukess
ファイル内の行単位で行を移動し、 '/ n'(ファイルの内容を保存する)で分割して '〜'をチェックするだけです – Aditya