2016-07-25 72 views
0

我正在嘗試編寫一個python腳本來遍歷列表,然後將新變量傳遞給其他python腳本。這裏是我的代碼:如何使用'for'循環將新變量傳遞給python腳本

腳本:ENCViewer.py

# import necessary modules 
import os 

# list of all ENCS 
root = os.listdir('/home/cassandra/desktop/file_formats/ENC_ROOT') 
root.sort() 
root = root[2:] 

for ENC in root: 
     # pass new instance of variable 'ENC' to ENCReader.py 
    import ENCReader.py 

腳本:ENCReader.py

from __main__ import * 
print ENC 
.... # remaining script 

目前,執行第一代碼時,ENCViewer.py,它只會執行一次然後退出。我如何將'ENC'的新實例變量傳遞給ENCReader.py,以便它可以在代碼的第一個代碼段中看到的整個'for'循環中執行?

謝謝。

+0

只要是明確的, 「其他Python腳本」 你的意思是另一個過程?如果是這樣,則需要某種形式的進程間通信,如管道,套接字或消息隊列。 – cdarke

回答

2

我不知道你問的是否可能,但我認爲你錯過了理解創建模塊和導入代碼的想法。達到相同的結果的 「標準」 的方法如下:

ENCReader.py

def printer(var): 
    print(var) 
    # your code.. 

ENCViewer.py

import os 
from ENCReader import printer 

# list of all ENCS 
root = os.listdir('/home/cassandra/desktop/file_formats/ENC_ROOT') 
root.sort() 
root = root[2:] 

for ENC in root: 
    printer(ENC) 
+0

我認爲你的意思是ENC? –

+0

@ joelgoldstick,是錯別字錯誤 – rsm