由于没有人提供任何代码来帮助解决这个问题,我将做如下的事情。结果发现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()

python如何运行一个python程序_在python中,如何运行一个命令行程序,它在发送Ctrl+D之前不会返回...相关推荐

  1. ffmpeg mp4 提取h265命令行_安装FFmpeg多媒体库,以及命令行程序使用介绍

    FFmpeg是非常流行的多媒体框架,主要用于音视频的解码.编码.转码.混流.过滤.播放等操作. 2000年,法国著名的程序员Fabrice Bellard创建FFmpeg项目,前两个字母FF是Fast ...

  2. python定义一个空数组_在NumPy中如何创建一个空的数组/矩阵?

    如何以我通常使用列表(List)的方式使用Numpy数组或矩阵? 我想创建一个空的数组(或矩阵),然后每次添加一列(或行)到这个数组(或矩阵). 目前能想到的方法是: mat = None for c ...

  3. python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  4. python用一行代码编写一个回声程序_利用Python实现一个WC程序

    项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数.单词数和行数 ...

  5. python用什么敲代码_你还在纠结用什么库写 Python 命令行程序?看这一篇就够了...

    一.前言 在近半年的 Python 命令行旅程中,我们依次学习了 argparse.docopt.click 和 fire 库的特点和用法,逐步了解到 Python 命令行库的设计哲学与演变. 本文作 ...

  6. 如何编写完美的 Python 命令行程序?

    这篇文章将教你如何编写完美的 Python 命令行程序,提高团队的生产力,让大家的工作更舒适. 作者 | Yannick Wolff 译者 | 弯月 责编 | 屠敏 出品 | CSDN(ID:CSDN ...

  7. 学python编程能做什么项目_十个Python练手的实战项目,学会这些Python就基本没问题了...

    python项目练习一:即时标记 这是<python基础教程>后面的实践,照着写写,一方面是来熟悉python的代码方式,另一方面是练习使用python中的基本的以及非基本的语法,做到熟能 ...

  8. 使用click创建完美的Python命令行程序

    Python程序员的主要工作是写命令行程序,即直接在终端运行的脚本. 随着项目规模增长,我们希望创建有效的命令行接口,通过提供不同的参数,解决不同的问题,而不是每次都修改源代码. Click库是一个非 ...

  9. python死循环用什么好弄_用python死循环

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 循环循环是指重复执行一段代码若干次,为什么要有循环? 因为循环可以避免大量的代码 ...

  10. 每日一课 | 如何编写完美的Python命令行程序?

    作者 | Yannick Wolff 译者 | 弯月 作为 Python 开发者,我们经常要编写命令行程序.比如在我的数据科学项目中,我要从命令行运行脚本来训练模型,以及计算算法的准确率等. 因此,更 ...

最新文章

  1. 【经验】向word中插入格式化的代码块
  2. 高效的找出两个List中的不同元素
  3. Eslint中no-undef的检查报错
  4. python使用缩进来体现代码之间的逻辑关系-Python使用缩进来体现代码之间的逻辑关系。...
  5. 联合权值 NOIP2014 提高组 Day1 T2
  6. 再不自动化就晚啦!优云教你4步打造基于CentOS的产品镜像
  7. 电脑QQ能登上,网页打不开的解决办法
  8. 软件构造学习笔记-第七周
  9. LeetCode 356. 直线镜像
  10. android中屏保功能项目,【Android】一段时间不操作弹出【屏保】效果
  11. jQuery鼠标悬停文字渐隐渐现动画效果
  12. 199的Eagle一点都不香了!这款Billfish,让你不花钱免费“嫖”
  13. Venmo、Bakkt、MoneyGram、Uphold的前高管加入Roxe全球支付网络
  14. java求最短距离_计算多点之间的最短距离
  15. Python安装Anaconda安装
  16. 2-3 Coursera吴恩达《改善深度神经网络》第三周课程笔记-超参数调试、Batch正则化和编程框架
  17. linux中的kill 终止进程
  18. 调查显示,41%的下一代家族企业接班人希望未来五年成为执行董事
  19. 产品上ref和lot是什么意思_试剂盒REF与LOT分别是什么意思
  20. htcd816+android密码,怎么给htc 816重新上锁的教程

热门文章

  1. 爱计算机辅助筛查肺结节,计算机辅助检测系统提高CT肺结节检出方式的研究
  2. 秒杀场景_多线程异步抢单队列分析与实现_02
  3. 服务器ip映射修改_集群高可用篇_01
  4. IntelliJ IDEA 单行注释调整
  5. IDEA Terminal替换成Git Bash_05
  6. ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘192.168.1.165‘ (113)
  7. Node.js 入门详解 (三)
  8. regedit或child_process添加注册表
  9. jq父级绑定事件的意义_js、jq事件绑定方式总结——以click事件为例
  10. 恒强制版系统980_速来围观 | 恒强制版小图高级功能讲解