Wie kann ich ein Python-Skript selbst ändern?

Wie kann ich ein Python-Skript selbst ändern?

Um es herunterzufahren, hätte ich gerne ein Python-Skript run.py)so wa

a = 0
b = 1
print a + b
# do something here such that the first line of this script reads a = 1

So sieht es beim nächsten Ausführen des Skripts aus wie

a = 1
b = 1
print a + b
# do something here such that the first line of this script reads a = 2

Ist das irgendwie möglich? Das Skript verwendet möglicherweise externe Ressourcen. Es sollte jedoch alles funktionieren, indem Sie einfach das one @ ausführerun.py-Datei

EDIT: Es war möglicherweise nicht klar genug, aber das Skript sollte sich selbst aktualisieren und keine andere Datei. Sicher, sobald Sie eine einfache Konfigurationsdatei neben dem Skript zugelassen haben, ist diese Aufgabe trivial.

Antworten

Es ist eigentlich viel einfacher als gedacht. @khelwoods Vorschlag funktioniert einwandfrei. Das Öffnen des Skripts und das Schreiben seines eigenen Inhalts ist völlig unproblematisch. @Gerrats Lösung funktioniert auch gut. So habe ich es:

# -*- coding: utf-8 -*-
a = 0
b = 1
print a + b

content = []
with open(__file__,"r") as f:
    for line in f:
        content.append(line)

with open(__file__,"w") as f:
    content[1] = "a = {n}\n".format(n=b)
    content[2] = "b = {n}\n".format(n=a+b)
    for i in range(len(content)):
        f.write(content[i])

Antworten auf die Frage(6)

Ihre Antwort auf die Frage