我写的文件与我正在阅读的文件不匹配

时间:2017-07-24 09:46:39

标签: python

我有两个文件,' tclust.txt'和' ef_blue.xpk'。 我想从ef_blue.xpk中获取某些特性并在tclust.txt中使用它们

import re
import sys 
import os 

lines = open('tclust.txt').readlines()
last_line = lines[-1] 

open ('tclust.txt','w').writelines(lines[:-2])

with open("ef_blue.xpl","rt") as f1, open("tclust.txt","a") as f2:
    for line in f1.readlines():
        float_num = re.findall("[\s][1-9]{1}\.[0-9]+",line)
        if len(float_num)>1:
            f2.writelines(' '*6 +float_num[0] + '0.05' + float_num[1] + '0.05' + '\n')
 f2.writelines(last_line)

我试图让我的输出(tclust.txt)看起来像:

What tclust.txt output should be

实际上是这样的:

What it actually is

我原来的tclust文件,我试图追加

My original tclust.txt file I'm trying to append

我原来的ef_blue文件

My original ef_blue file

如何让我的tclust文件看起来像我的输出?

Edit1:如果我更改了行

open ('tclust.txt','w').writelines(lines[:-2]) 

open ('tclust.txt','w').writelines(lines[:-1])

我的输出更改为

What it changes to

另外,我怎么能这样做,以便在每一行后,字符串'峰值'后面跟着我想要的tclust.txt文件中的相应数字

1 个答案:

答案 0 :(得分:0)

import re
import sys 
import os 

i = 0;
f = open("tclust.txt", "r")
lines = f.readlines()
f.close()
contents = []
with open("ef_blue.xpl","r") as f1:
    for line in f1.readlines():
        float_num = re.findall("[\s][1-9]{1}\.[0-9]+",line)
        if len(float_num)>1:
            i = i + 1
            value = ('Peak ' + str(i) + str(float_num[0]) + ' 0.05' + str(float_num[1]) + ' 0.05' + '\n')
            lines.insert(-1,value)  

f = open("tclust.txt", "w")
for value in lines: 
    f.write(value)
f.close()

上面给出的代码应该可以完成你的工作。在lines.insert(index,value)索引中,文件的值为0。