2016-11-30 10 views
1

常に更新されていて、改行を書き込んでいるCSVファイルを読みたい。だから私は新しい行があるたびに私はvar5をキャッチしています。 instrumentおよびquantityは固定値です。別のpythonファイルから一定の変数をインポートする

他のPythonファイルでvar5instrumentquantityという変数をインポートして使用するにはどうすればよいですか?

import time 
import os 

filename = 'myfile.csv' 
mycsv = open(filename, 'r') 
# Find the size of the file and move to the end 
mycsv.seek(0, os.SEEK_END) 


while 1: 
    time.sleep(1) 
    where = mycsv.tell() 
    line = mycsv.readline() 

    if not line: 
     mycsv.seek(where) 
    else: 
     arr_line = line.split(',') 
     var5 = arr_line[5] 
     instrument = "myinstrument" 
     quantity = 1000 
     return 

答えて

1

私たちはあなたが入力する必要があるmodule2.pyと呼ばれる新しいモジュールを作成し、あなたが上記のプログラムをコーディングされているモジュールがmodule1.py

と呼ばれているとしましょう:import module1

あなたはその後、それらの変数にアクセスすることができますmodule2.pyからこの方法:以来

module1.var5 
module1.instrument 
module1.quantity 

10とquantityは固定値変数であり、whileループの前にその値を宣言し、PEP 8次に名前を変更する方が効率的です:

INSTRUMENT = "myinstrument" 
QUANTITY = 1000 

これは、名前空間の衝突を回避するための優れた方法です。 var5変数の値をmodule1.pyに更新すると、module2.pyに反映されます。他の2つの定数の値は変わりません。

+0

ありがとうございました。しかし、私がmodule1.py、module2.py、module3.pyを持っていて、他のモジュールをインポートしようとすると、それらはすべてvar5を持っています。最初のモジュールからvar5しか取得できません。たとえば、print module1.var5、module2.var5、module3.var5私はmodule1、var5からの値を取得します。複数のモジュールをインポートすることは可能ですか? – manev

+0

はい、他のモジュールに必要なだけ多くのモジュールをインポートできます。 – Ylijumala

+0

私は変数をインポートしたときに、なぜそれを使うことができないのですか?私のコンソールに表示されているのは、module1.pyの出力です。 – manev

関連する問題