首页 > 解决方案 > 打印到作为后台进程运行的文件 python 脚本

问题描述

我有一个运行大约 3 个小时的 python 脚本。我想将它生成的一些数据打印到 .csv 文件中。

我在 centos 上,我正在运行我的脚本,如下所示:

python my_script.py > output.csv &

我也试过:

python my_script.py &> output.csv 

没有任何内容打印到 output.csv,甚至在脚本开头的一些测试语句也没有。

我尝试的下一件事是在我的脚本中打开一个文件 -f = open('output.csv', 'a')并使用f.write(). 同样,文件中没有显示任何内容(尽管它确实被创建了)。

如何使用我想要的数据创建 output.csv?当它不是后台进程时,它似乎可以正常工作,但我希望它在后台运行。

我像这样打印:

print('hello, this is a test')

在另一个版本中,我有这样的东西:

f = open('output.csv', 'a')
f.write('hello, this is a test')

在这两种情况下,我得到完全相同的结果。该文件被创建,但实际上没有写入任何内容。

任何帮助表示赞赏。谢谢!

标签: pythoniobackgroundcentos

解决方案


尝试刷新标准输出缓冲区:

蟒蛇> = 3.3:

print('hello, this is a test', flush=True)

早期版本:

import sys

print('hello, this is a test')
sys.stdout.flush()

推荐阅读