Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I make one python file run another? [duplicate]

Tags:

python

How can I make one python file to run another?

For example I have two .py files. I want one file to be run, and then have it run the other .py file.

like image 929
Nathan Tornquist Avatar asked Nov 02 '11 01:11

Nathan Tornquist


People also ask

How can I make one Python file run another?

Use the execfile() Method to Run a Python Script in Another Python Script. The execfile() function executes the desired file in the interpreter. This function only works in Python 2. In Python 3, the execfile() function was removed, but the same thing can be achieved in Python 3 using the exec() method.

How do I run two Python programs at once in Windows?

Using terminal - this is the simplest way to do it . You execute any python script as “$python a.py”. Now, if you want multiple scripts, you can either open up multiple terminals and run diffent programs on each or, in the same terminal “$ python a.py&b.py&c.py” . This will execute all programs from the same terminal.


2 Answers

There are more than a few ways. I'll list them in order of inverted preference (i.e., best first, worst last):

  1. Treat it like a module: import file. This is good because it's secure, fast, and maintainable. Code gets reused as it's supposed to be done. Most Python libraries run using multiple methods stretched over lots of files. Highly recommended. Note that if your file is called file.py, your import should not include the .py extension at the end.
  2. The infamous (and unsafe) exec command: Insecure, hacky, usually the wrong answer. Avoid where possible.
    • execfile('file.py') in Python 2
    • exec(open('file.py').read()) in Python 3
  3. Spawn a shell process: os.system('python file.py'). Use when desperate.
like image 61
apc Avatar answered Oct 05 '22 23:10

apc


Get one python file to run another, using python 2.7.3 and Ubuntu 12.10:

  1. Put this in main.py:

    #!/usr/bin/python import yoursubfile 
  2. Put this in yoursubfile.py

    #!/usr/bin/python print("hello") 
  3. Run it:

    python main.py  
  4. It prints:

    hello 

Thus main.py runs yoursubfile.py

There are 8 ways to answer this question, A more canonical answer is here: How to import other Python files?

like image 38
Eric Leschinski Avatar answered Oct 05 '22 22:10

Eric Leschinski