我需要像后台程序一样在后台处理此脚本,直到现在我都可以使它起作用,但不能在后台:

import threading
from time import gmtime, strftime
import time


def write_it():
    #this function write the actual time every 2 seconds in a file
    threading.Timer(2.0, write_it).start()
    f = open("file.txt", "a")
    hora = strftime("%Y-%m-%d %H:%M:%S", gmtime())
    #print hora
    f.write(hora+"\n")
    f.close()

def non_daemon():
    time.sleep(5)
    #print 'Test non-daemon'
    write_it()

t = threading.Thread(name='non-daemon', target=non_daemon)

t.start()


我已经尝试了另一种方法,但是没有其他方法可以像我期待的那样在后台工作。

最佳答案

如果您希望将脚本作为守护程序运行,则一种好方法是使用Python Daemon库。下面的代码应该可以实现您想要实现的目标:

import daemon
import time

def write_time_to_file():
    with open("file.txt", "a") as f:
        hora = time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())
        f.write(hora+"\n")

with daemon.DaemonContext():
    while(True):
        write_time_to_file()
        time.sleep(2)


在本地进行了测试,效果很好,每2秒将时间附加到文件中。

关于python - 后台进程在python中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23268464/

10-12 03:17