Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本调用不同的Python脚本,然后,从辅助脚本将字符串/结果带到主脚本_Python_Python 3.x_Subprocess_Visa_Pyvisa - Fatal编程技术网

Python脚本调用不同的Python脚本,然后,从辅助脚本将字符串/结果带到主脚本

Python脚本调用不同的Python脚本,然后,从辅助脚本将字符串/结果带到主脚本,python,python-3.x,subprocess,visa,pyvisa,Python,Python 3.x,Subprocess,Visa,Pyvisa,我正在编写一个测试软件,用PyVISA和VISA以及一些安捷伦IO库来控制一些安捷伦仪器。我已经创建了一个“TesPlan”(testplan.py),它应该“调用”其他几个Phyton测试脚本(rf_test.py、rf_test1、rf_test2.py等) 此时,我正在使用一个“子流程”来打开并执行我的所有测试,但是,我还没有找到将每个测试的结果纳入主测试计划的方法 请看下面我的代码: TEST-PLAN (testplan.py) import visa import

我正在编写一个测试软件,用PyVISA和VISA以及一些安捷伦IO库来控制一些安捷伦仪器。我已经创建了一个“TesPlan”(testplan.py),它应该“调用”其他几个Phyton测试脚本(rf_test.py、rf_test1、rf_test2.py等)

此时,我正在使用一个“子流程”来打开并执行我的所有测试,但是,我还没有找到将每个测试的结果纳入主测试计划的方法

请看下面我的代码:

  TEST-PLAN (testplan.py)  

  import visa 
  import time 
  import subprocess

  ##SubTest located at:
  test = "C:\\python_rf" 
  os.chdir(test) 
  import rf_test
  subprocess.Popen(['python', 'rf_test.py']) 
  print (status) 
  import rf_test1
  subprocess.Popen(['python', 'rf_test1.py']) 
  print (status)

  TEST SCRIPT (rf_test.py)
  ##Do some RF - GPS Testing 
  if all is OK 
  status = "PASS"

  TEST SCRIPT (rf_test1.py)
  ##Do some RF - GPS Testing 
  if all is OK 
  status = "PASS"

我需要将子测试的状态纳入我的主“测试计划”'以评估状态并允许装置移动到下一个测试

为什么要使用子流程?通常,在调用用Python编写的脚本时,不需要子流程。您可以将每个测试脚本设置为一个函数,比如
test()
,返回状态。然后您可以导入这些模块并运行
rf\u test.test()
rf\u test1.test()


如果出于某种原因需要使用子流程,您可以让脚本(1)打印状态或(2)使用特定的退出代码退出,例如,成功时退出系统(0),失败时退出系统(1)。然后在案例(1)中解析
subprocess.run(['python',rf_test1.py'])
捕获的
stdout
,或者在案例2中获取退出代码
subprocess.call(['python',rf_test1.py'])

Hi nnnmmm谢谢你的评论,我之所以使用子流程,是因为这是我进入这个社区的方式。我的子测试是用python编写的。当你提到创建函数时,你是指“def rf():”吗?