以Python方式执行Bash命令

Sop*_*des 8 python bash

我目前正在手动执行bash命令,方法是在python代码中输入shell.

如何用pythonic方式做到这一点?

我目前正在使用os.system函数执行命令,如;

os.system('sudo add-apt-repository ppa:ondrej/php')
os.system('sudo apt-get update')
os.system('sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0')
os.system('sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart')
Run Code Online (Sandbox Code Playgroud)

Mic*_*ael 10

可能重复此问题.

建议使用subprocess模块代替.os.system已被折旧赞成subprocess.

import subprocess

command = 'sudo add-apt-repository ppa:ondrej/php'
process = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
Run Code Online (Sandbox Code Playgroud)

  • python 3 中还有一个用于 getstatusoutput 的便捷函数,这非常好。` 状态,输出 = subprocess.getstatusoutput('cmd')` (2认同)