[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