0

私は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をメインにロードしたいのですが、バックグラウンドで実行してメインファイルをそのままにしておくだけで、最初に実行してからメインを実行する必要はありません。

今>>>オリジナル>>モジュール.....>>>オリジナル

必要なもの>>>オリジナル+モジュール>>オリジナル+モジュール

ありがとう!

4

2 に答える 2

2

これを行わない理由: インポートするモジュールでメソッドを定義し、このメソッドをループ内で 5 回呼び出してtime.sleep(x)、各反復で特定の値を指定します。

編集:

これがインポートするモジュールであると考えてください (例: 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)
于 2012-08-31T12:15:24.900 に答える
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)
于 2012-08-31T12:15:42.093 に答える