2016-07-31 16 views
-2

Ich versuche, einen Wert in einer bestimmten Zeile in einer Textdatei zu ersetzen.Python ersetzen Wert in Textdatei

Meine Textdatei enthält Zählung der Suchbegriff, Suchbegriff & Datum und Uhrzeit

Textdatei:

MemTotal,5,2016-07-30 12:02:33,781 
model name,3,2016-07-30 13:37:59,074 
model,3,2016-07-30 15:39:59,075 

Wie kann ich zum Beispiel ersetzen die Zählung der Suchbegriff für die Linie 2 (model name,3,2016-07-30 13:37:59,074)? Diese

ist das, was ich bereits:

f = open('file.log','r') 
filedata = f.read() 
f.close() 

newdata = filedata.replace("2", "3") 

f = open('file.log', 'w') 
f.write(newdata) 
f.close() 

Es ersetzt alle Werte 2.

+2

Dies ist zu definieren, kein kostenloser Code-Schreibservice. Bitte zeigen Sie Ihre Bemühungen und welchen Code Sie bisher haben. – Julien

+0

Was ist die Regel zu ersetzen? – Zety

Antwort

0

Sie haben drei Dinge in Ihrem Code zu ändern, die Arbeit zu erledigen:

  1. die Datei readlines mit Lesen.

    filedata = f.readlines() 
    
  2. Ändern Sie die Zeile, die Sie (beachten Sie, dass Python-Indizes bei 0 beginnen und nicht vergessen eine Zeilenendmarke \n am Ende der Zeichenfolge hinzufügen) ändern wollen:

    filedata[1] = 'new count,new search term,new date and time\n' 
    
  3. speichern Sie die Datei für Schleife eine Verwendung:

    for line in filedata: 
        f.write(line) 
    

Hier ist die voll ist Code (Bekanntmachung verwendete ich den with Kontext-Manager zu öffnen/schließen Sie die Datei):

with open('file.log', 'r') as f: 
    filedata = f.readlines() 

filedata[1] = 'new count,new search term,new date and time\n' 

with open('file.log', 'w') as f: 
    for line in filedata: 
     f.write(line) 
+0

ok Danke für den Code –

0

Meine Lösung:

count = 0 
line_number = 0 
replace = "" 
f = open('examen.log','r') 
term = "MemTotal" 
for line in f.read().split('\n'): 
     if term in line: 
       replace= line.replace("5", "25", 1) 
       line_number = count 
     count = count + 1 
print line_number 
f.close() 
f = open('examen.log','r') 
filedata = f.readlines() 
f.close() 

filedata[line_number]=replace+'\n' 
print filedata[line_number] 
print filedata 
f = open('examen.log','w') 
for line in filedata: 
    f.write(line) 
f.close() 

Sie müssen nur den Suchbegriff & der ersetzen Wert