2012-04-17 110 views
0

我正在尝试编写一个jython代码以从文本文件中删除空格。我有以下情形。 我有这样从文本文件中删除空格的Jython代码

STARTBUR001 20120416 
20120416MES000000002012032200000000020120323000000000201203240000000002012032600000000020120327000000000201203280000000002012032900000000020120330000000000 


20120416MES202566 2012030500000000020120306000000000201203070000000002012030800000000020120309000000000201203100000000002012031100000000020120312000000000201203130000000002012031400000000020 


20120416MES275921 20120305000000000201203060000000002012030700000000020120308000000000201203090000000002012031000000000020120311000000000201203120000000002012031300000000020120314000000000 

END 0000000202 

一个文本文件,这里所有的线条都单行。 但我想是什么样的

STARTBUR001 20120416 
20120416MES000000002012032200000000020120323000000000201203240000000002012032600000000020120327000000000201203280000000002012032900000000020120330000000000 
20120416MES202566 2012030500000000020120306000000000201203070000000002012030800000000020120309000000000201203100000000002012031100000000020120312000000000201203130000000002012031400000000020 
20120416MES275921 20120305000000000201203060000000002012030700000000020120308000000000201203090000000002012031000000000020120311000000000201203120000000002012031300000000020120314000000000 
END 0000000202 

因此,在所有我要开始第二线检查,直到我遇到END,并在每一行的tyhe年底全部删除空格。

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

尝试,如:

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() 

感谢, 马赫什

+0

尝试像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() – Maheshgx 2012-04-17 08:01:05

回答

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') 
+0

Thanks Michal .. :) – Maheshgx 2012-04-17 12:10:52