我是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到我的主要,但它只是在后台运行并保持主文件继续,不需要先运行它然后主要
现在>>>原始>>模块.....>>>原始
我需要的>>>原始+模块>>原始+模块
谢谢!
答案 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)