从子进程写入文件并不总是有效,除非我包含file.write()

时间:2017-06-20 00:36:53

标签: python python-2.7 io subprocess

我的代码如下所示:

for i in range(5):
    with open(file_path, 'a') as some_file:
        subprocess.Popen("command_to_run", stdout=some_file, stderr=subprocess.stdout).wait()

当我运行它时,some_file只包含'command_to_run'的输出一次。我很确定这只是循环的最后一次迭代。

如果我将代码修改为如下所示:

for i in range(5):
    with open(file_path, 'a') as some_file:
        some_file.writelines("iteration: " + str(i))
        subprocess.Popen("command_to_run", stdout=some_file, stderr=subprocess.stdout).wait()
        some_file.writelines("iteration: " + str(i))
然后突然一切正常!我无法弄清楚为什么。我对文件/子进程非常不熟悉,所以也许它显而易见,但我无法在网上找到任何东西。有什么想法吗?

0 个答案:

没有答案