0

次のようなテキストファイルがあります。

2013-03-10   Maxi Ica Storm Lindh -805,42  3 326,22 
2013-03-07   Hemk P Matgl Dje -86,80  4 131,64 
2013-03-06   Hemk P Sthlm City -238,30  4 218,44 
2013-03-04   Hemk P Matgl Dje -150,91  4 456,74 
2013-03-02   Lidl 257 / Sthlm Sveav -174,00  4 607,65 

このファイルを python にインポートして、すべての行が保存され、行が次のように分割されているリストを作成します。

2013-03-10  | Maxi Ica Storm Lindh | -805,42 | 3 326,22 

誰かがこれで私を助けることができますか?

4

2 に答える 2

2

タブ区切りのファイルがある可能性があります。csvモジュールを使用して、次のことを読み取ります。

import csv

with open('somefilename.csv', 'rb') as inputfile:
    for row in csv.reader(inputfile, delimiter='\t'):
        print ' | '.join(row)
于 2013-03-11T10:10:16.697 に答える
0

ソースファイルを更新できない/更新しないと仮定すると、おそらく正規表現を使用して行を解析することはできません。あなたが与えた入力に対して、これはうまくいきます(「行」があなたの行を保持していると仮定します):

>>> import re
>>> matcher = re.compile(r'^(\d{4}-\d{2}.\d{2})\s+(.+) (-?[\d ]+,\d{2})\s+(-?[\d, ]+)$')
>>> formatted_lines = ["|".join(m.groups()) for m in [matcher.match(line) for line in lines]]
>>> for line in formatted_lines:
...     print(line)
...
2013-03-10|Maxi Ica Storm Lindh|-805,42|3 326,22
2013-03-07|Hemk P Matgl Dje|-86,80|4 131,64
2013-03-06|Hemk P Sthlm City|-238,30|4 218,44
2013-03-04|Hemk P Matgl Dje|-150,91|4 456,74
2013-03-02|Lidl 257 / Sthlm Sveav|-174,00|4 607,65
于 2013-03-11T10:28:07.733 に答える