1

次の文字列があります

string = "OGC Number | LT No | Job /n 9625878 | EPP3234 | 1206545/n" and continues on  

次のようになる.CSVファイルに書き込もうとしています:

OGC Number | LT No | Job   
------------------------------
9625878   | EPP3234  | 1206545
9708562   | PGP43221 | 1105482
9887954   | BCP5466  | 1025454
  • 文字列の各改行は新しい行です
  • 各「|」スティングには新しい列があります

書式設定に問題があります。

私は使用する必要があると思います:

string.split('/n')
string.split('|')

ありがとう。

ウィンドウズ 7、パイソン 2.6

4

3 に答える 3

1

未テスト:

text="""
OGC Number | LT No | Job   
------------------------------
9625878   | EPP3234  | 1206545
9708562   | PGP43221 | 1105482
9887954   | BCP5466  | 1025454"""

import csv
lines = text.splitlines()
with open('outputfile.csv', 'wb') as fout:
    csvout = csv.writer(fout)
    csvout.writerow(lines[0]) # header
    for row in lines[2:]: # content
        csvout.writerow([col.strip() for col in row.split('|')])
于 2012-11-01T20:38:48.820 に答える
0

編集: おっと、私はあなたの質問を誤解しました!

以下のコードは、2 つの正規表現を使用して変更を行います。

import re

str="""OGC Number | LT No | Job   
------------------------------
9625878   | EPP3234  | 1206545
9708562   | PGP43221 | 1105482
9887954   | BCP5466  | 1025454
"""
# just setup above 

# remove all lines with at least 4 dashes
str=re.sub( r'----+\n', '', str )

# replace all pipe symbols with their 
# surrounding spaces by single semicolons
str=re.sub( r' +\| +', ';', str )

print str
于 2012-11-01T20:52:23.993 に答える
0

サードパーティ製モジュールの使用に興味がある場合。Prettytableは非常に便利で、表形式のデータを処理および印刷するための優れた機能セットを備えています。

于 2012-11-01T20:48:39.197 に答える