[Python-de] os.system und os.popen

Stefan Schwarzer sschwarzer at sschwarzer.net
Do Mai 25 14:01:59 EDT 2017


On 2017-05-25 19:06, Sven R. Kunze wrote:> On 25.05.2017 17:40, Hermann Riemann wrote:
>> error=os.system("latex ... 2> /tmp/log")
>>
>> Hermann
>>    der das so machen würde
>>
>
> Sieht durchaus einfacher aus, ist aber nicht ganz unsicher, wenn's um
> das Thema Quoting von Parametern geht.
>
> *Hier auch noch zum Nachlesen:*
> https://docs.python.org/3.6/library/subprocess.html

`subprocess` ist nicht nur sicherer, sondern auch ganz
allgemein robuster.

Es wird zwar immer hervorgehoben, dass mit dem Modul keine
Angriffe mit speziellen Dateinamen möglich sind (was stimmt),
aber das Modul hilft auch, wenn zum Beispiel Dateinamen ganz
ohne böse Absicht Leerzeichen enthalten oder Zeichen, die
sonst von der Shell interpretiert werden würden.

Beispiel:

  dateiname = "dies & das.txt"  # von irgendwoher

  ausgabe = subprocess.check_output(["du", "--human-readable", "--summarize", dateiname])

Viele Grüße
Stefan


Mehr Informationen über die Mailingliste python-de