運(yùn)行shell命令并捕獲輸出我想編寫一個(gè)函數(shù),它將執(zhí)行shell命令并返回其輸出。如一串不管是錯(cuò)誤還是成功的信息。我只想得到與命令行相同的結(jié)果。什么樣的代碼示例會(huì)做這樣的事情呢?例如:def run_command(cmd):
# ??????print run_command('mysqladmin create test -uroot -pmysqladmin12')# Should output something like:# mysqladmin:
CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
4 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
import commandsprint commands.getstatusoutput('wc -l file')
python2.7
python3
subprocess
import subprocess output=subprocess.Popen(["date"],stdout=PIPE)response=output.communicate()print response

繁花如伊
TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
def runProcess(exe): p = subprocess.Popen(exe, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) while(True): # returns None while subprocess is running retcode = p.poll() line = p.stdout.readline() yield line if retcode is not None: break
for line in runProcess('mysqladmin create test -uroot -pmysqladmin12'.split()): print line,

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
def run_command(command): p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) return iter(p.stdout.readline, b'')
command = 'mysqladmin create test -uroot -pmysqladmin12'.split()for line in run_command(command): print(line)
添加回答
舉報(bào)
0/150
提交
取消