`
houzhaowei
  • 浏览: 498015 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

后台运行python程序 遇到缓冲区问题

阅读更多

环境:linux

 

一段执行时间很长的程序(用python做hive客户端执行mapreduce) 在linux后台执行,把结果输出到某文件:

 

 

python xxx.py > log.log& 

 

 遇到的问题,程序没报错,文件里却什么都没有,没有输入进去。为什么呢?

于是我首先尝试用:

 

 

nohup python xxx.py > log.log &

 

预料之中 还是不行。

 

于是我做实验:

 

写了个test.py:

 

import sys,time
from threading import Thread
class worker(Thread):
     def run(self):
         for x in xrange(0,111):
             print x
             time.sleep(1)
def run():
     worker().start()
if __name__ == '__main__':
    run()

 每秒打印一次

我直接用python text.py 执行  没问题  每秒输出一个数

但我在后台执行:

 

python test.py > log.log& 

 

还是不行。开始不输出  直到程序执行完,一次性的写到log.log文件了。

为什么呢? 

原因可能是python 的print 先写到缓冲区了,还没flush到文件。

于是加了一行“ sys.stdout.flush() ” --在每次print后都flush一次。:

 

import sys,time
from threading import Thread
class worker(Thread):
     def run(self):
         for x in xrange(0,111):
             print x
             sys.stdout.flush()  
             time.sleep(1)
def run():
     worker().start()
if __name__ == '__main__':
    run()
 

问题解决。

分享到:
评论

相关推荐

    Ubuntu下后台持续运行Python程序

    在Ubuntu系统中,后台持续运行Python程序是许多开发者和系统管理员需要掌握的重要技能。这尤其适用于需要长时间运行的任务,如数据分析、服务器监控或自动化任务。本文将深入探讨如何在Ubuntu环境下实现这一目标,并...

    Python运行不显示DOS窗口的解决方法

    然而,在编写或运行Python脚本时,可能会遇到一些问题。比如,当我们运行Python程序时,通常会弹出一个DOS窗口。但在某些情况下,我们可能不希望显示这个DOS窗口,而只希望程序在后台静默执行。本文将介绍两种方法来...

    Apache运行python程序的必须组件

    当遇到问题时,mod_wsgi提供了丰富的日志记录功能,可以帮助开发者调试应用程序和服务器配置。可以通过设置日志级别、错误日志位置等参数来调整日志输出。 **安全性和性能优化** 运行Python程序时,需要考虑安全性...

    杀不死的Python程序:Windows下实现Python出错后重启且定时监视重启.doc

    一​项​数​量​达​1​0​0​0​0​多​条​的​I​P​地​址​归​属​地​查​询​任​务​催​生​了​W​i​n​d​o​w​s​下​实​现​P​y​t​h​o​n​出​错​后​重​启​且​定​时​监​视​重​启​...

    python后台windows窗口自动截图

    Python 后台Windows窗口自动截图是一项实用的技术,它允许开发者编写程序在计算机后台无用户交互的情况下捕获指定窗口的图像。这项技术在多种场景下都可能有用,例如监控特定应用程序的状态,或者像在这个例子中,...

    Linux后台运行Python程序的几种方法讲解

    1.第一种方法是直接用unhup命令来让程序在后台运行,命令格式如下: unhup python 文件名.py (> ***.log )& 在这个命令中,python指定我们要执行的文件为python文件,后面的文件名.py即是我们要执行的文件。括号...

    在交互式环境中执行Python程序过程详解

    相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行、命令行窗口运行、开发工具上运行等,其中在不同的操作平台上还互不相同。今天,小编讲些Python基础的内容,以...

    Python程序设计(第二版)

    书中会教授如何读写文件,处理文本和二进制数据,以及如何进行错误处理,确保程序在遇到问题时能优雅地处理。 Python还提供了丰富的数据结构,如列表、元组、字典和集合。这些内容会帮助你更好地组织和管理数据。...

    《Python程序设计与算法基础教程(第二版)》江红余青松全部章节的课后习题,上机实践,课 .pdf

    3. **在资源管理器中运行Python程序**: - 可以通过PowerShell或cmd命令行直接运行Python脚本,如`python hello.py`。如果脚本和命令行在同一目录下,可以直接输入脚本名,否则需要指定完整路径。 4. **命令行参数...

    头歌python程序设计答案.rar

    这份文档可能是对《头歌Python程序设计》这本书的配套练习题或测试题的解决方案,旨在帮助读者巩固所学知识,解决在编程实践中遇到的问题。 Python是一种高级、解释型、交互式和面向对象的脚本语言。其简洁明了的...

    Python4Delphi 运行环境Python38版本

    标题中的 "Python4Delphi 运行环境Python38版本" 指的是为了运行基于 Python4Delphi 开发的应用程序,你需要安装特定版本的 Python 运行时环境,即 Python 3.8。Python 的不同版本之间可能存在不兼容性,因此,为了...

    225-运行程序-01-增加Shebang符号直接运行Python程序.flv

    225-运行程序-01-增加Shebang符号直接运行Python程序.flv

    win7解决python打包EXE不能运行升级包.rar

    在Windows 7操作系统中,使用Python进行程序开发后,我们常常需要将代码打包成可执行文件(EXE),以便在没有Python环境的机器上运行。然而,在某些情况下,打包后的EXE文件可能无法正常运行,这通常是由于系统兼容...

    Python语言程序设计PPT课件.zip

    Python程序设计的书籍已经琳琅满目,每一本书都凝聚了作者对Python的理解和对程序设计的认识,都是作者编程开发和教学经验的总结,都折射出作者的专业背景。由于大数据专业学生对程序设计的要求不是很高,但又需要...

    好玩的python程序的实现(有注释,80多个)

    7. **异常处理**:Python的try-except结构用于处理程序运行时可能出现的错误。程序可能会有处理除零错误、文件未找到错误等例子。 8. **面向对象编程**:虽然初学者可能不会立即接触到,但程序可能包含简单的类定义...

    【已解决】利用nohup使得Python Flask项目在Ubuntu系统上后台运行

    一、问题: 今天在部署Python Flask项目到线上的时候,在虚拟环境中,运行项目可以正常访问到api,但是在Xshell中,一旦Ctrl+C或者关闭ssh,他就停止了,api再也请求不到了 二、nohup 1、nohup 是 no hang up 的缩写...

    基于Qt+C++开发一个python编译器,能够编写,运行python程序+源码(毕业设计&课程设计&项目开发)

    基于Qt+C++开发一个python编译器,能够编写,运行python程序+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 该项目利用Qt+C++实现了一个简易的...

    python程序设计教程-张莉-江苏省python二级教材-全套PPT

    《Python程序设计教程》是张莉教授为江苏省计算机二级考试编写的教材,旨在帮助考生全面理解和掌握Python编程语言。这套PPT涵盖了从Python基础到高级应用的诸多知识点,旨在为考试提供系统的复习材料。 首先,从第1...

    unigui网页运行Python.7z

    2 程序中的“运行表达式”仅可以运行 2*3*4 这样的表达式,不能运行脚本,运行脚本时,因为print方法没有办法输出到unigui界面,故添加参数 retdata,修改retdata.value来输出信息到unigui界面. 示例脚本 ...

Global site tag (gtag.js) - Google Analytics