Search code examples
pythonexecute

Equivalent of source() of R in Python


Like we have source() function to execute a R program in another R program in R studio, how do I execute a python program in another python program?


Solution

  • Given 2 python scripts: first.py and second.py, the usual way to execute the first from the second is something in the lines of:

    first.py:

    def func1():
        print 'inside func1 in first.py'
    
    if __name__ == '__main__':
        # first.py executed as a script
        func1()
    

    second.py:

    import first
    
    def second_func():
        print 'inside second_func in second.py'
    
    if __name__ == '__main__':
        # second.py executed as a script
        second_func()
        first.func1() # executing a function from first.py
    

    Edits:

    • You could also go for the simple execfile("second.py") if you wish (although it is only within the calling namespace).
    • And a final option is using os.system like so:
      os.system("second.py").