2017-07-24 2 views
-2

Ich habe zwei Dateien, 'tclust.txt' und 'ef_blue.xpk'. Ich möchte in bestimmten charactes von ef_blue.xpk nehmen und sie in tclust.txtDie Datei, die ich schreibe, stimmt nicht mit der Datei überein, die ich gerade lese

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) 

verwenden Ich versuche, meine Ausgabe (tclust.txt) zu erhalten, wie folgt aussehen:

What tclust.txt output should be

Dies ist, was es eigentlich ist:

What it actually is

Meine ursprüngliche tclust-Datei, die ich versuchen, ing

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

Meine ursprüngliche ef_blue Datei

My original ef_blue file

Wie kann ich meine tclust Datei wie meine Ausgabe suchen anhängen bekommen?

Edit1: wenn ich die Linie

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

zu

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

Meine Ausgabe Änderungen

What it changes to ändern

auch, wie könnte ich es so machen, dass nach jedem Zeile, der Zeichenfolge 'Peak' folgt die entsprechende Zahl, wie es in meinem Wunsch ist d tclust.txt Datei

Antwort

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

Der oben angegebene Code sollte Ihre Aufgabe erfüllen. In lines.insert(index,value) Index beginnt mit dem Wert 0 für eine Datei.

Verwandte Themen