[Python-Dev] "Deprecation" of os.system in favor of subprocess?

Victor Stinner vstinner at redhat.com
Wed Oct 24 12:06:27 EDT 2018


I like os.system() and use it everyday. I prefer to write
os.system("grep ^Vm /proc/%s/status" % os.getpid()) than... much more
Python code to do the same thing, or subprocess.run("grep ^Vm
/proc/%s/status" % os.getpid(), shell=True):

os.system() is shorter and only requires "import os" :-)

I'm not using os.system() for "production ready" code, but when I
develop, play with the REPL, etc. For production code, I would write a
function which avoids spawning a new process, obviously. But well,
shell commands are shorter and easier to write (for me, at least).

Victor
Le mer. 24 oct. 2018 à 08:08, Stephane Wirtel <stephane at wirtel.be> a écrit :
>
> Good morning/afternoon/evening/night ;-)
>
> In the documentation of os.system [1], there is this paragraph, where we
> suggest to use subprocess instead of os.system.
>
> """
> The subprocess module provides more powerful facilities for spawning new
> processes and retrieving their results; using that module is preferable
> to using this function. See the Replacing Older Functions with the
> subprocess Module section in the subprocess documentation for some
> helpful recipes.
> """
>
> But I have found some references (between 15 and 23 (if we include
> setup.py)) of os.system.
>
>
> Do we need to keep the code like that or could we start to use
> subprocess for these "references" because it is preferable?
>
> If you think we could move to subprocess, I would like to open an issue
> and try to fix it.
>
> 1. Add the 'deprecated' directive in the doc
> 2. Use subprocess for these references
>
> What is your opinion?
>
> Thank you,
>
> Stéphane
>
> [1] https://docs.python.org/3.8/library/os.html?highlight=os%20system#os.system
>
> --
> Stéphane Wirtel - https://wirtel.be - @matrixise
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/vstinner%40redhat.com


More information about the Python-Dev mailing list