python删除字符并将crlf添加到文件中

时间:2013-05-03 23:24:14

标签: python python-2.7

我有以下文件

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

我需要使用python 2.7处理它并在每640个字符后添加\ r \ n。 这将导致

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

但是现在我想删除第一个字符,直到'_'

2 个答案:

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

答案 1 :(得分:0)

要删除_之前的第一个字符,您可以在_上拆分字符串并仅选择第二部分。

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