2012-06-20 96 views
1

我寫了兩個腳本,其中一個腳本調用subprocess.Popen來運行終端命令來執行第二個腳本。等待5秒後,它將終止子過程。Python子流程執行腳本不會寫入文件

在子進程中,我有一個while循環輪詢一個寄存器,並將該寄存器的內容寫入一個文件。

我使用的方法是

f = open(filename, 'w') 
... 
while 1: 
    *poll register* 
    f.write(fp0) 
    sleep(1) 

每當我運行該腳本與while循環單獨存在,它的寄存器的內容寫入文件。但是,當我執行主腳本並執行輪詢腳本作爲子進程時,它不會在文件終止後寫入該文件。

任何人都可以提供任何建議的問題?

回答

1

使用的上下文對文件的開放,和你睡覺前添加一個右對齊:

with open(filename, 'w') as f: 
    ... 
    while 1: 
     *poll register* 
     f.write(fp0) 
     f.flush() 
     sleep(1) 
+0

謝謝你,這個工作非常適合我! – maknelly

0

由於您正在終止子流程,因此可能不會將輸出刷新到文件。 嘗試調用f.flush()以確保輸出寫入文件。