2016-05-22 7 views
-2

すべての関数と0.25秒のループ内にあるメインコードを持つPythonファイルBがあります。このファイルをファイル内のループで呼び出すA.私の変な心を得ることができますか?ファイルAのループ内のファイルBから関数を呼び出す

#FileA 
while 1: 
    from FileB import * 

そして、私のファイルB:

おかげで私は一度だけ、ファイルBからループを読んで何 。

PS:私はあなたがfunctionsを使用する必要があります私はファイルB

+0

ループを複数回コールバックしたい場合、メインコードはなぜですか?それは機能のためのものです! –

答えて

1

importステートメントは、ターゲットモジュールを1回だけ読み取ります。

あなたは両方のファイルのコントロールを持っている場合、私はあなたがファイルBにあなたのループ機能を作成しておくことをお勧めしたい:

def main(): 
    while t<0.25: 
     #my stuff 

if __name__ == '__main__': 
    main() 

その後、あなたは、ファイルAからそれを繰り返し呼び出すことができます。

from fileB import main as Bmain 

while 1: 
    Bmain() 

ファイルのソースコードを管理していない場合(つまり、コードが他の誰かのものである場合)、いくつかのオプションがあります。おそらく最も簡単で最も速いコードは、別のプロセスでfileBの内容を実行するためにos.system(command)関数を使用することです。

+1

'os.system'の代わりに' subprocess.call'(または 'subprocess'モジュールの他のツールの1つ)を使うことを強くお勧めします。 'os.system'ドキュメント(答えに好きなもの)から:" 'サブプロセス'モジュールは、新しいプロセスを産み出し、その結果を取り出すためのより強力な機能を提供します;このモジュールを使用する方がこの機能を使う方が望ましいです。 –

0

を変更できないことを言及するのを忘れて、あなたの質問にすべての機能を持っていません。次に例を示します。

# fileA.py 
import time 
from fileB import myFunction 

def main(): 
    while True: 
     ret = myFunciton() 
     time.sleep(3) 
main() 

# fileB.py 
def myFunction(): 
    print "running myFunction" 
    return "result"  
関連する問題