Excute script only from another file

Peter Otten __peter__ at web.de
Mon Nov 25 03:12:22 EST 2013


Himanshu Garg wrote:

> I want that a script should only be executed when it is called from
> another script and should not be directly executable through linux command
> line.
> 
> Like, I have two scripts "scrip1.py" and "script2.py"  and there is a line
> in "script1.py" to call "script2.py" as subprocess.call(["python",
> "script2.py"]).
> 
> Then this is should call script2 but I should not be able to directly call
> script2 as $python script2.py

Put the toplevel code into a function, i. e. change

#script2.py old
print "hello from script2"

to

# script2.py new

def f(): # you should pick a descriptive name instead of f
    print "hello from script2"

and then import it from script1 and invoke the function:

# script1.py old
#...
subprocess.call("python", "script2.py")
#...

# script1.py new
import script1
#...
script.f()
#...






More information about the Python-list mailing list