Скрипт Python выполняет команды в терминале
Я читал это где-то некоторое время назад, но не могу показаться, чтобы найти его. Я пытаюсь найти команду, которая будет выполнять команды в терминале и затем выводить результат.
например: скрипт:
command 'ls -l'
это будет результат выполнения этой команды в терминале
6 ответов:
есть несколько способов сделать это:
простой способ-это использование модуля ОС:
import os os.system("ls -l")
более сложные вещи могут быть достигнуты с помощью модуля подпроцесса: например:
import subprocess test = subprocess.Popen(["ping","-W","2","-c", "1", "192.168.1.70"], stdout=subprocess.PIPE) output = test.communicate()[0]
Я предпочитаю использовать модуль подпроцесса:
from subprocess import call call(["ls", "-l"])
причина в том, что если вы хотите передать некоторую переменную в скрипте, это дает очень простой способ, например, взять следующую часть кода
abc = a.c call(["vim", abc])
вы также должны изучить команды.getstatusoutput
Это возвращает кортеж длиной 2.. Первый-это возвращаемое целое число ( 0-при успешном выполнении команд ) во-вторых, весь выход, как будет показано в терминале.
для ls
import commands s=commands.getstatusoutput('ls') print s >> (0, 'file_1\nfile_2\nfile_3') s[1].split("\n") >> ['file_1', 'file_2', 'file_3']
The ОС.к popen() довольно просто использовать, но он был устаревшим с Python 2.6. Вы должны использовать подпроцесс модуль.
читать здесь: чтение ОС.popen(команда) в строку