Ожидаемый результат в переменной результат - корень. версия: Python 3.6.7 (по умолчанию, 22 октября 2018 г., 11:32:17)
>>> import os
>>> os.system("stat -c '%U' /tmp/test")
root
0
>>> result = os.system("stat -c '%U' /tmp/test")
root
>>> print(result)
0
согласно описанию в ссылке это, os.system()
возвращает код выхода команды, а не фактический результат. Вместо этого вы можете использовать модуль подпроцесс.
как я могу использовать это в подпроцессе? пожалуйста, объясни
пожалуйста, проверьте примеры по ссылке это
Из документов os.system
:
On Unix, the return value is the exit status of the process encoded in the format specified for wait()
Ваша команда выполняется без ошибок, поэтому ее статус выхода - 0
, что и возвращает system
. Если вы хотите получить вывод выполняемой команды, вам необходимо вызвать команду через одну из функций модуля subprocess
.
os.system
используется только для получения кода возврата, в вашем случае попробуйте использовать subprocess.check_output
from subprocess import check_output
result = check_output(["stat","-c","'%U'","/tmp/test"])
print result
root
Я думаю, что это правильный метод, но показывает ошибку FileNotFoundError: [Errno 2] Нет такого файла или каталога: "stat -c '% U' / tmp / test": "stat -c '% U' / tmp / tes
попробуйте сейчас, добавил shell = True
Я думаю, что функциональность, которую вы ищете, описана здесь ... stackoverflow.com/questions/4760215/…