2017-03-07 1 views
0

Ich wollte Crone-Job von os.system Befehl in Python geschrieben einschalten und ausschalten. Im Grunde verwenden Sie den Befehl sed, um die Crontab-Zeile zur Steuerung des Jobzeitplans zu kommentieren oder zu deaktivieren.Wie kann ich python sagen, das Hash-Symbol nicht als Kommentar zu interpretieren?

Aber wenn ich diesen Befehl wie unten gezeigt, interpretieren Python als Text nach # als Kommentar.

Gibt es eine Möglichkeit zu sagen, Python # nicht als Kommentarzeichen zu interpretieren?

+0

Warum benötigen Sie das Hash-Symbol? –

+3

In einem String-Literal ignoriert Python selbst den Hash. Es ist nur ein anderer Charakter. – jonrsharpe

+1

Es könnte sein, dass Ihr Editor es nicht korrekt anzeigt, aber Python wird es verstehen. –

Antwort

1

Sie haben kein Problem mit dem Hash-Symbol, aber Ihre Zitate sind nicht korrekt. Versuchen Sie folgendes:

os.system(r"crontab -l | sed '/^\*.*heightSQL.py/s/^/#/' | crontab -") 

Und btw: Sind Sie sicher, crontab -l korrekte Ausgabe während crontab - produziert bereits ausgeführt wird? Ich bin nicht. Aber das ist nebensächlich hier.

+0

Es wäre hilfreich zu verdeutlichen, dass die Änderung ein 'r'raw string'-Literal ist, es dauerte eine Weile, um es zu erkennen. – jonrsharpe

+1

Je länger du es erkennen musst, desto besser erinnerst du dich daran ;-) (Ich mache nur halb Witze ...) – Alfe

+0

Es funktioniert, das einzige, was ich brauche, um es nicht als Sudo laufen zu lassen. –

Verwandte Themen