【问题标题】:Launch an external program python [duplicate]启动外部程序python [重复]
【发布时间】:2014-07-30 03:24:07
【问题描述】:

您好,我被要求编写一个启动外部程序的程序来测试该程序。 我在一个文件中写了一个python方法,然后将它导入到另一个文件中,并为它编写了测试用例。

但我需要启动一个外部程序。

有人可以帮助我了解这是什么以及如何做到这一点吗?

【问题讨论】:

  • 你能展示一下你尝试了什么吗?请与我们分享您的代码
  • 我已经更新了我在问题中写的代码,请帮忙。 SUT 应该是一个外部应用程序。我是写成python程序的,不知道怎么办。
  • 你可能对nose库感兴趣
  • 谢谢马克,我确实看过那篇文章。 subprocess 在 Mac 上无法使用 python 2.7 工作。我也尝试通过传递参数来使用 os.popen(python /path/to/fileToRun.py 1 1) ,但它没有接受参数。

标签: python external launch


【解决方案1】:

您可能对 os 库感兴趣。自带python,import os 则可以使用os.system("unix terminal command") ex.

import os

os.system('python /path/to/fileToRun.py')

编辑:

不确定为什么 subprocess 不起作用,但 popen 应该捕获 printed 与您的其他类的所有内容

result = os.popen('python /path/to/file.py').read()
print result

【讨论】:

  • 虽然技术上正确,但建议在 os.system 上使用子进程。
  • 好点,子进程扩展了 os 库的功能,谢谢。 docs.python.org/2/library/subprocess.html
  • sut 中的方法有两个参数,而且我想在文件日志file.log 中捕获stdout 和stderr。我需要使用这个:subprocess.check_output("python /pathtoSUT", 'a', 'b', stdout=subprocess.STDOUT, stderr=subprocess.STDOUT, shell=false)
  • 我还需要检查sut程序的返回值
  • subprocess 无法在 Mac 上使用 python 2.7 工作。我也尝试通过传递参数来使用 os.popen(python /path/to/fileToRun.py 1 1) ,但它没有通过获取参数返回输出。
猜你喜欢
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 2021-01-11
  • 2011-08-03
  • 1970-01-01
相关资源
最近更新 更多