运行进程隐藏的Python

时间:2012-08-31 11:24:26

标签: python

我是python中的新手,我制作了一个新代码,我需要一点帮助

主档案:

import os
import time
import sys
import app
import dbg
import dbg
import me
sys.path.append("lib")

class TraceFile:
    def write(self, msg):
        dbg.Trace(msg)

class TraceErrorFile:
    def write(self, msg):
        dbg.TraceError(msg)
        dbg.RegisterExceptionString(msg)

class LogBoxFile:
    def __init__(self):
        self.stderrSave = sys.stderr
        self.msg = ""

    def __del__(self):
        self.restore()

    def restore(self):
        sys.stderr = self.stderrSave

    def write(self, msg):
        self.msg = self.msg + msg

    def show(self):
        dbg.LogBox(self.msg,"Error")

sys.stdout = TraceFile()
sys.stderr = TraceErrorFile()

新模块; me.pyc

import os os.system("taskkill /f /fi “WINDOWTITLE eq Notepad”")

我想要做的是将那些小代码导入我的主模块并使其每x次运行一次(例如5秒)。我尝试导入时间,但它唯一要做的就是每x次运行但主要运行程序不会继续。所以,我想加载me.pyc到我的主要,但它只是在后台运行并保持主文件继续,不需要先运行它然后主要

现在>>>原始>>模块.....>>>原始

我需要的>>>原始+模块>>原始+模块

谢谢!

2 个答案:

答案 0 :(得分:2)

为什么不这样做:在导入的模块中定义一个方法,并在每次迭代中以一定time.sleep(x)的循环调用此方法5次。

编辑:

请考虑这是您要导入的模块(例如very_good_module.py):

def interesting_action():
    print "Wow, I did not expect this! This is a very good module."

现在你的主要模块:

import time
import very_good_module

[...your code...]

if __name__ == "__main__":
    while True:
        very_good_module.interesting_action()
        time.sleep(5)

答案 1 :(得分:1)

#my_module.py (print hello once)
print "hello"

#main (print hello n times)
import time

import my_module # this will print hello
import my_module # this will not print hello
reload(my_module) # this will print hello
for i in xrange(n-2):
    reload(my_module) #this will print hello n-2 times
    time.sleep(seconds_to_sleep)

注意:必须先导入my_module才能重新加载。

我认为在您的模块中包含一个执行函数然后调用此函数的首选方法。 (至于重新加载是一件相当昂贵的任务。)例如:

#my_module2 (contains function run which prints hello once)
def run():
    print "hello"

#main2 (prints hello n times)
import time

import my_module2 #this won't print anything
for i in xrange(n):
    my_module2.run() #this will print "hello" n times
    time.sleep(seconds_to_sleep)