3 Stimmen

Ändern/Ersetzen einer Zeile in einer Python-Datei durch eine andere Python-Datei

Ich versuche, einen Teil einer Zeichenfolge in einer Python-Datei aus einer anderen Python-Datei zu ersetzen/zu ändern.

Die Zeile, die ich in anderen PY zu ersetzen versuche, lautet :

a.setSystemFile('D:/test/f.xml')

Ich möchte den Teil dieser Zeile, d.h. den Xml-Pfad, durch einen anderen Xml-Pfad ersetzen:

Ejemplo:

a.setSystemFile('C:/try/X.xml')

Mein Code sieht wie folgt aus:

with open('script.py') as f:  lines = f.read().splitlines()
with open('script.py', 'w') as f:

    for line in lines:
      if line.startswith('a.setSystemFile'):

        f.write(line.replace('D:/test/f.xml','C:/try/X.xml')

Dadurch wird die Datei jedoch leer und es wird nur C:/try/X.xml geschrieben. Gibt es eine Möglichkeit, den ursprünglichen Inhalt zu erhalten und gleichzeitig nur die XML-Pfadzeichenfolge wie im obigen Beispiel zu ersetzen?

Für jede Hilfe wären wir dankbar. Danke!

2voto

Ignacio Vazquez-Abrams Punkte 735200

Sie haben etwas vergessen zu tun, wenn die Zeile nicht mit diesem Text beginnen.

for line in lines:
  if line.startswith('a.setSystemFile'):
    f.write(line.replace('D:/test/f.xml','C:/try/X.xml'))
  else:
    f.write(line)

Außerdem würde ich vorschlagen, einfach die sed für das hier?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X