2016-07-27 6 views
1

私は別のPythonスクリプト(scr2.py)を呼び出すPythonスクリプト(scr1.py)を持っていて、両方とも同じパスにあります。 CMDを開いてscr1.pyを実行すると、すべてが完全に機能します。MakefileでPythonスクリプトを実行する

スクリプトと同じパスにないMakefile内でscr1.pyを実行します。 scr1.pyは実行中ですが、scr2.pyを呼び出すと失敗します。問題は、scr1.pyがscriptsディレクトリの代わりにMakefileディレクトリを検索することだと思います。 どうすれば修正できますか?

コード:

import os 
import scr2 
fileinfo = os.stat('scr2.py') 

if os.path.isfile("infofile.txt"):   
    file=open("infofile.txt",'r')  
    lm = file.read() 
    file.close() 
    if lm == str(fileinfo.st_mtime): 
     #Do_Something 
    else: 
     scr2 
else: 
    scr2 
    file = open("infofile.txt",'w') 

OK、私は別の問題を源泉。 別のファイルをインポートすると、このファイルがインポートラインで実行されます。 これは、スクリプトを実行したい場所にインポート行を使用しない限り、ファイルをインポートするのは適切ではないが、とても醜いことを意味します。

答えて

0

両方のファイルが同じディレクトリにあるので、2番目のファイル名の前に現在の作業ディレクトリパスを追加するのはどうでしょうか?

import os 
import scr2 
fileinfo = os.stat(os.getcwd() + '/scr2.py') 

if os.path.isfile("infofile.txt"):   
    file=open("infofile.txt",'r')  
    lm = file.read() 
    file.close() 
    if lm == str(fileinfo.st_mtime): 
     #Do_Something 
    else: 
     scrcompile         
else: 
    scrcompile      
    file = open("infofile.txt",'w') 
+0

私は間違いを犯したことを今見ている。私はスクリプトの名前を変更して理解しやすくしました。残念ながら、私は急いで急いでいたので、すべてが変更されたことを確認するのを忘れました。 scrcompileはscr2を意味します。それは動かない部分です。 – DrorNohi

+0

少し修正した後、私はこれをうまく動作させることができました。 os.getcwd()が動作しました。 – DrorNohi

関連する問題