<p>为了方便起见,下面是如何“自动”解析此格式的方法:</p>
<pre><code>import re
# find out spaces' positions common to all rows
spaces = sorted(set.intersection(*[
set(m.end() for m in re.finditer(ur'\s', line))
for line in data
]))
# split by these positions
for line in data:
row = []
p = 0
for s in spaces:
row.append(line[p:s])
p = s
row.append(line[p:])
row = filter(len, map(unicode.strip, row))
print ' | '.join(row) # or whatever you want...
</code></pre>
<p>对于您的数据:</p>
^{pr2}$
<p>打印:</p>
<pre><code>Clnr | Kontonr | Konto | Valuta | Bokföringsdatum | Transaktionsdatum | Referens | Kontohändelse | Belopp
12345 | 1234567890 | vardagskonto | SEK | 13-09-30 | 13-09-30 | Hyresgästför | Autogiro | -15,00
12345 | 1234567890 | vardagskonto | SEK | 13-09-30 | 13-09-30 | SPOTIFY SPOTIFY | Kortköp/uttag | -19,00
12345 | 1234567890 | vardagskonto | SEK | 13-09-30 | 13-09-30 | +46123456789 | Swish mottagen | 80,00
12345 | 1234567890 | vardagskonto | SEK | 13-09-30 | 13-09-30 | PRIS NYCKELKUND | Debiteringsavgift | -49,00
12345 | 1234567890 | vardagskonto | SEK | 13-09-27 | 13-09-27 | 12345678 | direktbetalning | -301,00
12345 | 1234567890 | vardagskonto | SEK | 13-09-27 | 13-09-27 | Unionen | Bg-bet. via internet | -125,00
12345 | 1234567890 | vardagskonto | SEK | 13-09-26 | 13-09-26 | 123456789012345 | Överföring | -1 000,00
</code></pre>