使用Python将字符串转换为Csv文件

时间:2012-11-01 20:34:15

标签: python csv formatting

我有以下字符串

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
  • 其中字符串中的每个换行符都是新行
  • 其中每个“|”在sting是一个新专栏

我无法获得格式化。

我想我需要使用:

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

感谢。

Windows 7,Python 2.6

3 个答案:

答案 0 :(得分: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('|')])

答案 1 :(得分:0)

如果您对使用第三方模块感兴趣。 Prettytable非常有用,并且具有一组很好的功能来处理和打印表格数据。

答案 2 :(得分:0)

编辑:哎呀,我误解了你的问题!

下面的代码将使用两个正则表达式来进行修改。

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