我的代码如下所示:
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))
然后突然一切正常!我无法弄清楚为什么。我对文件/子进程非常不熟悉,所以也许它显而易见,但我无法在网上找到任何东西。有什么想法吗?