2013-05-03 58 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]