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.
wj127
1181 silver badge12 bronze badges
asked Nov 2, 2011 at 1:29
Nathan TornquistNathan Tornquist
6,16810 gold badges46 silver badges72 bronze badges
4
There are more than a few ways. I'll list them in order of inverted preference [i.e., best first, worst last]:
- 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 calledfile.py
, yourimport
should not include the.py
extension at the end. - The infamous [and unsafe] exec command: Insecure, hacky, usually the wrong answer. Avoid where possible.
execfile['file.py']
in Python 2exec[open['file.py'].read[]]
in Python 3
- Spawn a shell process:
os.system['python file.py']
. Use when desperate.
answered Nov 2, 2011 at 3:27
20
Get one python file to run another, using python 2.7.3 and Ubuntu 12.10:
Put this in main.py:
#!/usr/bin/python import yoursubfile
Put this in yoursubfile.py
#!/usr/bin/python print["hello"]
Run it:
python main.py
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?
Jonathan
6,2977 gold badges46 silver badges66 bronze badges
answered Dec 8, 2013 at 18:14
Eric LeschinskiEric Leschinski
139k90 gold badges405 silver badges327 bronze badges
7
I used subprocess.call it's almost same like subprocess.Popen
from subprocess import call
call[["python", "your_file.py"]]
answered Jul 12, 2017 at 3:38
6
- you can run your .py file simply with this code:
import os
os.system['python filename.py']
note: put the file in the same directory of your main python file.
answered Jan 23, 2016 at 19:46
AyserAyser
94511 silver badges15 bronze badges
4
You could use this script:
def run[runfile]:
with open[runfile,"r"] as rnf:
exec[rnf.read[]]
Syntax:
run["file.py"]
answered Apr 16, 2017 at 15:26
4
You'd treat one of the files as a python module and make the other one import it [just as you import standard python modules]. The latter can then refer to objects [including classes and functions] defined in the imported module. The module can also run whatever initialization code it needs. See //docs.python.org/tutorial/modules.html
answered Nov 2, 2011 at 1:37
Adam ZalcmanAdam Zalcman
26.2k4 gold badges68 silver badges91 bronze badges
It may be called abc.py
from the main script as below:
#!/usr/bin/python
import abc
abc.py
may be something like this:
print'abc'
Lioness100
8,0225 gold badges15 silver badges46 bronze badges
answered Jun 1, 2017 at 19:19
1