2016-07-27 11 views
1

У меня есть скрипт Python (scr1.py), который вызывает другой скрипт Python (scr2.py), и они оба находятся на одном пути. Когда я открываю CMD и запускаю scr1.py, все работает отлично.Запуск скрипта Python в Makefile

Я хочу запустить scr1.py внутри Makefile, который НЕ находится на том же пути, что и скрипты. Выполняется сценарий scr1.py, но при вызове scr2.py отсутствует. Я думаю, проблема заключается в том, что scr1.py ищет каталог 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') 

ОК, я просто кладезь еще одна проблема. Когда вы импортируете другой файл, он запускает этот файл в ИМПОРТНОЙ ЛИНИИ! Это означает, что это неправильный способ импорта файла, если вы не используете строку импорта, где вы хотите запустить скрипт, но это так уродливо.

ответ

0

Поскольку оба файла находятся в одном каталоге, как насчет просто добавления текущего пути к каталогу до второго имени файла?

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

О, извините, теперь я вижу, что совершил ошибку. Я изменил имена скриптов, чтобы было легче понять. К сожалению, я очень торопился, поэтому забыл проверить, что все они были изменены. С помощью scrcpile я имею в виду scr2. это та часть, которая не будет работать. – DrorNohi

+0

После небольших изменений мне удалось заставить это работать. Os.getcwd() выполнил работу. – DrorNohi