When I type os.system("whoami")
in Python, as root, it returns root
, but when I try to assign it to a variable x = os.system("whoami")
it set's the value of x to 0. Why ? (:
os. system only returns the error value.
os. system() you can execute a system command, but it does not return the output to Python. This will run a command on your system. On Linux and Mac the command pwd returns the current directory, but any command will do.
Description. Python method popen() opens a pipe to or from command. The return value is an open file object connected to the pipe, which can be read or written depending on whether mode is 'r' (default) or 'w'. The bufsize argument has the same meaning as in open() function.
os.system()
returns the (encoded) process exit value. 0
means success:
On Unix, the return value is the exit status of the process encoded in the format specified for
wait()
. Note that POSIX does not specify the meaning of the return value of the C system() function, so the return value of the Python function is system-dependent.
The output you see is written to stdout
, so your console or terminal, and not returned to the Python caller.
If you wanted to capture stdout
, use subprocess.check_output()
instead:
x = subprocess.check_output(['whoami'])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With