How do I run a .py file from another python file....

I want a program depending upon the option you choose to run a different python program...

Ho do i do this...

I have tried:

import os
if os.path.isfile('file.py'):
    exec(open('file.py').read)

and it requires everything to be global....
only when the call line is the only thing in the file does it work perfectly...

Recommended Answers

All 3 Replies

You can execute it using the os module. In DOS or GNU/Linux, in the command line you can type python code.py to execute a file. So you can try this:

import os
os.system("python othercode.py")

The one problem would be if the user does not have "python" registered as a recognized command. Below is the universal solution which locates the user's python executable and uses a system call to that with its absolute path:

import os
import sys
pyexe = sys.executable  # something like "C:\Python25\python.exe"
os.system('%s othercode.py' % pyexe)

This should be cross-platform compatible. Hope that helped!

I would use module subprocess:

# os.system() does not allow the Python program 
# to run in the background, whereas subprocess does

import subprocess

# remove  "arg1", "arg2" if you don't have any command line args
subprocess.call(["C:/Python25/Python.exe", "Skripta.py", "arg1", "arg2"])

thanks for your help i'll try both out see what works for me....

Thank you so much.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.