代码之家  ›  专栏  ›  技术社区  ›  ellen

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

  •  1
  • ellen  · 技术社区  · 7 年前

    我有一个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 回复  |  直到 7 年前
        1
  •  1
  •   cody    7 年前

    尝试刷新stdout缓冲区:

    python>=3.3:

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

    早期版本:

    import sys
    
    print('hello, this is a test')
    sys.stdout.flush()
    
    推荐文章