2013-05-03 60 views
1

我有以下文件蟒蛇刪除字符,並添加CRLF到文件

Ichg_UNBUNOA3         14    2090100000015      14    1304221445000001                                                                                                                               MSG_BGM380           610809        9 NA                                                                                                                                          MSG_DTM13720130422       102                                                                                                                                                    Grp1_RFFON test EDI                                                                                                                                                            Grp2_NADBY 

我需要使用Python 2.7來處理它,並添加\ r \ n各自640個字符後。 這將導致

Ichg_UNBUNOA3 14...... 
MSG_BGM380 610809..... 
MSG_DTM13720134022..... 
Grp1_RFFON test EDI 
Grp2_NADBY..... 

,然後刪除之前所有字符「_」

是否有人有一個解決方案?


import textwrap 
    original= infile.readline() 

    line="\r\n".join(textwrap.wrap(original, 640)) 
    for line in line: 
     tofile.write(line) 

該代碼產生以下

Ichg_UNBUNOA3         14    2090100000015      14    1304221445000001 
MSG_BGM380           610809        9 NA 
MSG_DTM13720130422       102 
Grp1_RFFON test EDI 
Grp2_NADBY 2090100000015       9 
Grp2_NADIV 2090100000015       9 

但現在我想放棄的第一個字符,直到 '_'

回答

1

可以使用textwrap模塊:

>>> import textwrap 
>>> strs="Ichg_UNBUNOA3         14    2090100000015      14    1304221445000001                                                                                                                               MSG_BGM380           610809        9 NA                                                                                                                                          MSG_DTM13720130422       102                                                                                                                                                    Grp1_RFFON test EDI                                                                                                                                                            Grp2_NADBY" 

#textwrap.fill(strs,640) appends a newline ("\n") after every 640 characters 
#use "\r\n".join(textwrap.wrap(strs, 640)) if you want '\r\n' instead of '\n' as newline 

>>> new_strs=textwrap.fill(strs,640) 

>>> for line in new_strs.splitlines(): 
    print " ".join(line.split()) 
...  
Ichg_UNBUNOA3 14 2090100000015 14 1304221445000001 
MSG_BGM380 610809 9 NA 
MSG_DTM13720130422 102 
Grp1_RFFON test EDI 
Grp2_NADBY 
0

To dro p第一個字符,直到_您可以拆分_上的字符串並只選擇第二個部分。

line = line.split('_', 1)[1]