我有一个看起来像这样的文本文件:
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
有人可以帮我这个吗?
答案 0 :(得分:2)
您可能有一个制表符分隔的文件。使用csv
module来读取:
import csv
with open('somefilename.csv', 'rb') as inputfile:
for row in csv.reader(inputfile, delimiter='\t'):
print ' | '.join(row)
答案 1 :(得分:0)
假设您不能/不会更新源文件,您可能无法使用正则表达式解析行。对于你给出的输入,这将起作用(假设'lines'保存你的行):
>>> 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