python如何运行一个python程序_在python中,如何运行一个命令行程序,它在发送Ctrl+D之前不会返回...
由于沒有人提供任何代碼來幫助解決這個問題,我將做如下的事情。結(jié)果發(fā)現(xiàn)pexpect非常強大,而且您不需要signal模塊。在import os
import sys
import pexpect
def run_server():
server_dir = '/path/to/server/root'
current_dir = os.path.abspath(os.curdir)
os.chdir(server_dir)
server_call = pexpect.spawn('atlas-run')
server_response = server_call.expect(['Server Error!', 'Sever is running!'])
os.chdir(current_dir)
if server_response:
return server_call #return server spawn object so we can shutdown later
else:
print 'Error starting the server: %s'%server_response.after
sys.exit(1)
def run_unittests():
# several ways to do this. either make a unittest.TestSuite or run command line
# here is the second option
unittest_dir = '/path/to/tests'
pexpect.spawn('python -m unittest discover -s %s -p "*test.py"'%unittest_dir)
test_response = pexpect.expect('Ran [0-9]+ tests in [0-9\.]+s') #catch end
print test_response.before #print output of unittests before ending.
return
def main():
server = run_sever()
run_unittests()
server.sendcontrol('d') #shutdown server
if __name__ == "__main__":
main()
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的python如何运行一个python程序_在python中,如何运行一个命令行程序,它在发送Ctrl+D之前不会返回...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分期乐提前还款为什么只能转账
- 下一篇: python标准库os_Python基础