Как создать функцию «cmd» в Python?

Я пытаюсь создать функцию, которая возвращает вывод, поскольку команда будет записана в командной строке в Windows или Linux ?

ПРИМЕР:

def cmd_simulator(commands): #some code cmd_simulator("date") - Thu Jan 28 12:18:05 EST 2016 

или Windows:

 cmd_simulator("date") - The current date is: Thu 01/28/2016 - Enter the new date: (mm-dd-yy) 

Вам нужно использовать модуль subprocess , чтобы иметь дело с командами в скрипте python. Если вам нужно только получить результат своей команды, используйте subprocess.check_output(cmd) .

cmd – последовательность (список python) аргументов программы. Итак, если ваша команда содержит только одно слово (например, date ), оно будет работать с использованием cmd="date" . Но если у вас более длинная команда (например, cmd="grep 'pattern' input_file.txt" ), то она не будет работать, так как вам нужно разделить разные аргументы командной строки. Для этого используйте модуль shlex : shlex.split(cmd) вернет соответствующую последовательность в подпроцесс.

Итак, код для вашего cmd_simulator будет примерно таким:

 import subprocess import shlex def cmd_simulator(cmd): return subprocess.check_output(shlex.split(cmd)) 

И, конечно, вы можете добавить к этой функции некоторые попытки / за исключением проверки того, что команда работает и т. Д.

Если вам нужна не только стандартная команда вашей команды, но и stderr, например, вы должны использовать subprocess.Popen(cmd) .

Вы можете использовать этот метод –

 import subprocess cmd_arg = "date" proc = subprocess.Popen(cmd_arg, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) out, err = proc.communicate() print(out) #Thu Jan 28 12:18:05 EST 2016