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

时间:2018-05-20 13:42:29

标签: 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, self.json, 'Message')

正如您最初所看到的,我正在准备文件,然后运行linux_script.sh。下一步是比较两个dict,但是直到linux脚本完成才能完成 - 脚本正在运行其他创建.json文件的应用程序。在.json文件未准备好之前,test_dict无法执行,因为它将失败。

问题:python将等待这一行完成:os.system('./linux_script.sh,然后运行测试?如果不是我怎么能强迫python这样做?

1 个答案:

答案 0 :(得分:2)

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

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