0

我正在尝试编写用于从文本文件中删除空格的 jython 代码。我有以下情况。我有一个文本文件

STARTBUR001 20120416
20120416MES201667 20120320000000000201203210000000002012032200000000020120323000000000201203240000000002012032600000000020120327000000000201203280000000002012032900000000020120330000000000


20120416MES202566 2012030500000000020120306000000000201203070000000002012030800000000020120309000000000201203100000000002012031100000000020120312000000000201203130000000002012031400000000020


20120416MES275921 20120305000000000201203060000000002012030700000000020120308000000000201203090000000002012031000000000020120311000000000201203120000000002012031300000000020120314000000000

END 0000000202

这里所有的行都是单行。但我想要的是

STARTBUR001 20120416
20120416MES201667 20120320000000000201203210000000002012032200000000020120323000000000201203240000000002012032600000000020120327000000000201203280000000002012032900000000020120330000000000
20120416MES202566 2012030500000000020120306000000000201203070000000002012030800000000020120309000000000201203100000000002012031100000000020120312000000000201203130000000002012031400000000020
20120416MES275921 20120305000000000201203060000000002012030700000000020120308000000000201203090000000002012031000000000020120311000000000201203120000000002012031300000000020120314000000000
END 0000000202

所以总而言之,我想从第二行开始检查,直到遇到 END 并删除每行末尾的所有空格。

有人可以指导我编写这段代码吗?

尝试过:

srcfile=open('d:/BUR001.txt','r')
trgtfile=open('d:/BUR002.txt','w')
readfile=srcfile.readline()
while readfile:
    trgtfile.write(readfile.replace('\s',''))
    readfile=srcfile.readline()
srcfile.close()
trgtfile.close()

谢谢, 马赫什

4

1 回答 1

0

您可以使用这些特殊行以特殊值开头的事实:

line = srcfile.readline()
while line:
    line2 = line
    if not line2.startswith('START') and not line2.startswith('END'):
        line2 = line2.replace(' ','')
    trgtfile.write(line2)
    line = srcfile.readline()

另请注意,readline()结果字符串以\n(或在输入文件末尾为空)结尾,并且此代码从行中删除所有空格,而不仅仅是行尾的空格。

如果我理解您的示例,您想要的只是删除空行,因此不要逐行读取文件,而是一次读取它:

content = srcfile.read()

然后从内容中删除空行:

while '\n\n' in content:
    content = content.replace('\n\n', '\n')
于 2012-04-17T08:47:02.817 回答