以下の形式の大きなテキストファイルがあり、CSVファイルに変換したいと思います。CSVファイルの列名は、以下に示すタプルの最初の部分に対応している必要があります。タプルではない行の最初の項目は、常に以下の形式であると想定しても安全です。
その他の問題には、各行に同じフィールドがない場合があることが含まれます。たとえば、ステータスがあるものとないものがあります。同じフィールドの複数のインスタンスがあるものもあります。その場合、タプルの2番目の部分を連結する必要があります(たとえば、スミス氏、グリーン夫人)が、これらは今のところさらに遠い問題です。
[' Message 1 '];['Status', 'Read'];['Message ID', '012434'];['Message Truncation', 'OK'];['Priority', 'Low'];['Sent Time', '15/12/2010 05:56:36']
[' Message 2 '];['ColumnName', 'Read'];['ColumnName2', '012434'];['Message Truncation', 'OK'];['Priority', 'Low'];['Sent Time', '15/12/2010 05:56:36']
[' Message 3 '];['To', 'Mr Smith'];['To', 'Mrs green'];['Message Truncation', 'OK'];['Priority', 'Low'];['Sent Time', '15/12/2013 05:56:36']
..。
私の計画では、ファイル内のすべてのブロックを反復処理して列名を確立してから、これらの列名にデータを追加し始め、必要に応じて空白を残します。辞書のリストをいじって行き詰まってしまったので、これをPythonのように処理する方法を考えています。
行を分割してから、各タプルを辞書に追加する必要があると思います。何か助けはありますか?ありがとう!
for line in file:
line_split = line.split(';')