2016-05-22 69 views
-2

我有一個Python文件B,其中包含我的所有函數和一個在0.25秒循環中的主代碼,並且我想在我的文件中循環調用此文件A.你可以得到我的奇怪頭腦嗎? 我做了什麼,但只有讀取文件B一旦循環:從文件A中的文件B中調用函數A

#FileA 
while 1: 
    from FileB import * 

我的文件B:

感謝。

PS:我忘了提,我不能修改該文件B.

+0

爲什麼你的循環是主代碼,如果你想多次回調它?這是一個功能! –

回答

1

import語句只讀取一次目標模塊。

如果你有這兩個文件的控制,我建議你讓你的循環在文件B的函數:

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

if __name__ == '__main__': 
    main() 

然後你就可以從文件中的重複調用它:

from fileB import main as Bmain 

while 1: 
    Bmain() 

如果您不具備文件源代碼的控制權(意思是:如果代碼來自其他人),則有幾個選項。可能最簡單和最快的代碼是使用os.system(command)函數在單獨的進程中運行fileB的內容。

+1

我強烈建議使用'subprocess.call'(或'subprocess'模塊中的其他工具之一)而不是'os.system'。從'os.system'文檔(喜歡的答案):''subprocess'模塊提供了更強大的工具來產生新的進程並檢索它們的結果;使用該模塊比使用這個函數更可取。 –

0

你應該使用functions,你沒有任何的功能在你的問題。以下是一個示例:

# 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"  
相關問題