首页 文章

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

提问于
浏览
1

我有一个python脚本,运行大约需要3个小时 . 我想将它生成的一些数据打印到.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 回答

  • 1

    尝试刷新stdout缓冲区:

    Python> = 3.3:

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

    早期版本:

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

相关问题