python如何运行程序中选中的几行命令_在python中,如何运行命令行程序,直到我向其发送Ctrl D才会返回...

由于没有人提供任何代码来帮助解决这个问题,我会做类似以下的事情.事实证明,pexpect非常强大,你不需要信号模块.

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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值