Как обратиться к операционной системе (ОС): выполнить команду из командой строки (терминала) на 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'}