Bei der Verwendung von os.system() zum Ausführen von Befehlszeilenbefehlen besteht die Notwendigkeit, Dateinamen und übergebene Argumente zu maskieren Parameter entstehen insbesondere in Betriebssystemen wie Bash. Hier ist eine effektive Methode, um dies zu erreichen:
Escape-Funktion mit shlex.quote()
Python 3 bietet eine praktische Escape-Funktion namens shlex.quote(). Diese Funktion wandelt jede Zeichenfolge effektiv in eine ordnungsgemäß maskierte Version um, die sicher als Argument in os.system()-Aufrufen verwendet werden kann.
<code class="python">import shlex os.system(shlex.quote("cat %s | grep something | sort > %s" % (in_filename, out_filename)))</code>
Escape-Funktion für Python 2 und 3
Wenn Sie Abwärtskompatibilität mit Python 2 benötigen, können Sie die Funktion „pipes.quote“ anstelle von „shlex.quote()“ verwenden. Beachten Sie jedoch, dass Pipes in Python 3.10 veraltet sind und in Python 3.13 entfernt werden.
<code class="python">import pipes os.system(pipes.quote("cat %s | grep something | sort > %s" % (in_filename, out_filename)))</code>
Zusätzlicher Hinweis zur Sicherheit
Während os.system() Da es eine unkomplizierte Methode zum Ausführen von Befehlen bietet, ist es wichtig, sich der Sicherheitsbedenken bewusst zu sein. Seien Sie vorsichtig, wenn Sie Eingaben von nicht vertrauenswürdigen Quellen annehmen.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateinamen und Argumente für os.system()-Aufrufe in Python sicher maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!