Как обратиться к операционной системе (ОС): выполнить команду из командой строки (терминала) на python?

Как мне вызвать внешнюю команду в Python, как если бы я набрал ее в командной строке?


Ответы (1 шт):

Автор решения: Oopss
import subprocess
import pprint


def run_command(command):
    result = subprocess.run(command , shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    return {
        'command': command,
        'stdout': result.stdout,
        'stderr': result.stderr,
        'returncode': result.returncode
    }

# Выполнение команды ls
s_ls = run_command('ls /')
# Выполнение команды df
s_df = run_command('df -h')

# Вывод результата
pprint.pprint(s_df)
pprint.pprint(s_ls)

{'command': 'df -h',
 'returncode': 0,
 'stderr': '',
 'stdout': 'Файловая система Размер Использовано  Дост Использовано% '
           'Cмонтировано в\n'
           'udev               237M            0  237M            0% /dev\n'
           'tmpfs               50M         1,7M   48M            4% /run\n'
           '/dev/sda1          1,5G         1,2G  245M           83% /\n'
           'tmpfs              248M            0  248M            0% /dev/shm\n'
           'tmpfs              5,0M            0  5,0M            0% '
           '/run/lock\n'
           'tmpfs              248M            0  248M            0% '
           '/sys/fs/cgroup\n'
           'tmpfs               50M            0   50M            0% '
           '/run/user/1000\n'}
{'command': 'ls /',
 'returncode': 0,
 'stderr': '',
 'stdout': 'bin\n'
           'boot\n'
           'dev\n'
           'etc\n'
           'home\n'
           'initrd.img\n'
           'initrd.img.old\n'
           'lib\n'
           'lib64\n'
           'libx32\n'
           'lost+found\n'
           'media\n'
           'mnt\n'
           'opt\n'
           'proc\n'
           'root\n'
           'run\n'
           'sbin\n'
           'srv\n'
           'sys\n'
           'tmp\n'
           'usr\n'
           'var\n'
           'vmlinuz\n'
           'vmlinuz.old\n'}
→ Ссылка