subprocess.Popen将stdout重定向到文件而不阻塞

时间:2017-04-12 09:46:52

标签: python

我们可以将标准输出重定向到

文件
with open('/tmp/test.log', 'w') as fp:
   p = subprocess.Popen(['exe'], stdout=fp)

子进程将运行一个小时左右。 我的理解是我们需要等待子进程在with块内关闭,以便fp始终有效。

但我运行的测试用例在没有阻塞等待的情况下工作正常。

如果实际等待是一个好习惯,还有其他方法可以在不阻塞的情况下完成这项工作吗?

1 个答案:

答案 0 :(得分:0)

更好地使用

module.exports = {
    'Demo asynchronous' : function(client){
        client.url(client.launchUrl);
        client.executeAsync(function(data, done) {
            // start executing in the browser, no access to outside variables
            someAsyncOperation(function() {                
                done(true);
            });              
        });
        // end executing in the browser, back in the node context
        client.setValue('#PoiSearch', 'hotle'); 
        client.click('#POISearchButton');;
        client.expect.element('#Map div[name*="mark"]').to.be.present;
    }
}
而不是。

fp = open(...