如何在Windows下编写在后台一直运行的Python程序

 我来答
就烦条0o
推荐于2018-02-27 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46487
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部

使用python自带的GUI就可以实现,python自带TK,使用tk的mainloop就会让python程序一直运行,只要让GUI窗口一直不显示就是一直在后动员运行了。

代码示意如下:

from tkinter import *

root = Tk()

root.withdraw()   # 隐藏窗口

root.mainloop()  # 消息循环

把代码以pyw扩展名保存,执行一下,就会让程序一直在后台执行,可以通过任务管理器结束,如下:

黑板客
推荐于2017-12-16 · TA获得超过469个赞
知道小有建树答主
回答量:193
采纳率:100%
帮助的人:189万
展开全部

网上找的


# SmallestService.py
#
# A sample demonstrating the smallest possible service written in Python.
import win32serviceutil
import win32service
import win32event
import time
class SmallestPythonService(win32serviceutil.ServiceFramework):
    _svc_name_ = "SmallestPythonService"
    _svc_display_name_ = "The smallest possible Python Service"
    def __init__(self, args):
        win32serviceutil.ServiceFramework.__init__(self, args)
        # Create an event which we will use to wait on.
        # The "service stop" request will set this event.
        self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
    def SvcStop(self):
        # Before we do anything, tell the SCM we are starting the stop process.
        self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
        # And set my event.
        win32event.SetEvent(self.hWaitStop)
    def SvcDoRun(self):
        #what to do#
        while True:
            f= open('c:/a.log','a')
            f.write('asdf\n')
            f.close()
            time.sleep(5)
        win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)
if __name__=='__main__':
    win32serviceutil.HandleCommandLine(SmallestPythonService)

在SvcDoRun里写上你想做的事情。保存为server.py


python server.py install

这样就安装了一个server服务,当然你要有管理员权限才可以。然后就可以到windows的服务里看到这个SmallestPythonService服务,可以启动,停止,甚至开机启动。这就是标准的后台运行了。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式