2010-06-01 13 views
6

Ich versuche, etwas Text in einer Datei durch einen Wert zu ersetzen. Alles funktioniert gut, aber wenn ich die Datei nach ihrer Fertigstellung ansehe, gibt es nach jeder Zeile in der Datei eine neue (leere) Zeile. Kann ich etwas dagegen tun? HierErsetze Text in Datei mit Python

ist der Code, wie ich es haben:

import fileinput 
    for line in fileinput.FileInput("testfile.txt",inplace=1): 
     line = line.replace("newhost",host) 
     print line 

Danke, Aaron

Antwort

3

Jede line wird aus der Datei mit der Endzeile newline gelesen, und der Ausdruck fügt einen eigenen hinzu.

Sie können:

print line, 

Was nicht eine neue Zeile nach der Zeile hinzufügen.

+0

Dies funktionierte Präfekt! Danke für die Hilfe – Aaron

+0

So stellt sich heraus, dass ich in ein Problem renne. Aus irgendeinem Grund, wenn ich diesen Text ersetze, passiert etwas anderes mit der Datei. Ich benutze ein Programm namens TextWrangler für Textbearbeitung und wenn ich versuche, die Datei zu öffnen, sagt es mir "Ein unerwarteter E/A Fehler ist aufgetreten (MacOS Fehlercode: -36). Vor diesem" suchen und ersetzen "öffnet es gut Was könnte so etwas verursachen? – Aaron

+0

Ich habe gerade gesehen, dass wenn ich versuche, die Originaldatei vom Terminal zu sehen, fragt sie, ob ich es anzeigen möchte, weil es eine Binärdatei ist. Vielleicht ist das das Problem? – Aaron

2

Die print line automatisch eine neue Zeile erstellt. Am besten machen Sie stattdessen einen .

0

print fügt eine neue Zeilen Charakter:

A '\ n' Zeichen am Ende geschrieben wird, es sei denn, der Druck-Anweisung mit einem Komma endet. Dies ist die einzige Aktion, wenn die Anweisung nur das Schlüsselwort print enthält.

Verwandte Themen