1

我有以下文件

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

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

4

2 回答 2

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
于 2013-05-03T23:29:46.007 回答
0

要删除第一个字符,直到_您可以拆分字符串_并仅选择第二部分。

line = line.split('_', 1)[1]
于 2013-05-07T14:19:58.917 回答