Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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脚本等待linux脚本完成_Python_Python 3.x - Fatal编程技术网

如何使python脚本等待linux脚本完成

如何使python脚本等待linux脚本完成,python,python-3.x,Python,Python 3.x,我正在准备python脚本,它将以正确的顺序控制其他python和linux脚本。我对以下代码有一个疑问: import os import unittest class TestDict(unittest.TestCase): x = factory.FileGenerator() os.system('./linux_script.sh') def test_dict(self): self.assertDictEqual(self.test,

我正在准备python脚本,它将以正确的顺序控制其他python和linux脚本。我对以下代码有一个疑问:

import os
import unittest

class TestDict(unittest.TestCase):

    x = factory.FileGenerator()
    os.system('./linux_script.sh')

    def test_dict(self):
        self.assertDictEqual(self.test, self.json, 'Message')
正如您所看到的,首先我正在准备文件,然后运行
linux\u script.sh
。下一步是比较两个dict,但在linux脚本完成之前无法进行比较-该脚本正在运行另一个创建.json文件的应用程序。在未准备.json文件之前,无法执行test_dict,因为它将失败

问题:python将等待这一行完成:
os.system('./linux\u script.sh
,然后运行测试?如果不是,我如何强制python这样做?

os.system()
在返回之前等待命令完成


请注意,由于您直接在类体内调用函数,这将在加载测试类时执行,而不是在实例化时执行。如果这不是您想要的,请将调用移动到构造函数、设置方法或直接移动到测试方法本身。

使用脚本的相对路径会给测试带来麻烦未来。最好将脚本放在一个众所周知的目录中,并将其添加到您的
PATH
环境变量中。我将把它添加到安装方法中。谢谢