打印到作为后台进程运行的文件python脚本

时间:2018-12-09 02:46:48

标签: python io background centos

我有一个运行大约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')

在两种情况下,我得到的结果完全相同。文件已创建,但实际上未写入任何文件。

感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

尝试刷新标准缓冲区:

Python> = 3.3:

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

早期版本:

import sys

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