2016-07-25 12 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 

スクリプト:最初のコード、ENCViewer.pyを実行するときにENCReader.py

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

は現在、それは一度だけ実行されます終了します。 ENCeader.pyの新しいインスタンス変数を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、yep typo error – rsm

関連する問題