Red de conocimiento informático - Problemas con los teléfonos móviles - Varias formas comunes de ejecutar comandos del sistema en Python

Varias formas comunes de ejecutar comandos del sistema en Python

(1)os.system

#Simplemente ejecute el comando del sistema en el subterminal. No se obtendrá información de retorno después de ejecutar el comando.

#Si se ejecuta nuevamente en el. línea de comando, el resultado será Se imprimirá directamente, por ejemplo: import osos.system('ls')

chk_err_log.py CmdTool.log install_log.txt install_zabbix.sh Manage_deploy.sh MegaSAS.log

(2 )osos.popen

# Este método no solo ejecutará el comando, sino que también devolverá un objeto de información posterior a la ejecución

#La ventaja es que asignará el resultado devuelto a una variable. La ventaja es que los resultados devueltos se asignan a variables, lo que hace que el programa sea más fácil de procesar.

Por ejemplo: import ostmp = os.popen('ls *.sh').readlines()tmp['install_zabbix.shn', 'manage_deploy.shn', 'mysql_setup.shn', 'python_manage_ implementar .shn', 'setup.shn']

(3)Uso del subproceso del móduloUso: importar subproceso

subprocess.call (["cmd", "arg1", "arg2" ] , shell=True)

La ventaja es que al utilizar el control y la supervisión de subprocesos, el resultado devuelto se asigna a una variable, lo que facilita el procesamiento del programa.

Por ejemplo, obtenga el retorno y la salida:

importar subproceso

p = subprocess.Popen('ls *.sh', shell=True, stdout =subprocess.PIPE, stderr=subprocess.STDOUT)

imprimir p.stdout.readlines()

para la línea en p.stdout.readlines():

imprimir línea,

retval = p.wait()

(4) Uso del módulo de comandos del módulo

Hay dos métodos principales comúnmente utilizados: getoutput y getstatusoutput

Importar comandos

comandos. getoutput('ls *.sh')

'install_zabbix.shnmanage_deploy.shnmysql_setup.shnpython_manage_deploy.shnsetup.sh'

commands.getstatusoutput('ls *.sh')

(0, 'install_zabbix.shnmanage_deploy.shnmysql_setup.shnpython_manage_deploy.shnsetup.sh')

Nota: Si los parámetros o el valor de retorno del comando contienen caracteres chinos, se recomienda utilizar un subproceso Si usa os.popen, se producirá un error.