How do I run another file in python?

Tags: , , ,



So I know how to write in a file or read a file but how do I RUN another file?

for example in a file I have this: a = 1 print(a)

How do I run this using another file?

Answer

file_path = "<path_to_your_python_file>"

using subprocess standard lib

import subprocess
subprocess.call(["python3", file_path])

or using os standard lib

import os
os.system(f"python3 {file_path}")

or extract python code from the file and run it inside your script:

with open(file_path, "r+", encoding="utf-8") as another_file:
  python_code = another_file.read()

# running the code inside the file
exec(python_code)

exec is a function that runs python strings exactly how python interpreter runs python files.

IN ADDITION

if you want to see the output of the python file:

import subprocess
p = subprocess.Popen(
  ["python3", file_path], 
  stdout=subprocess.PIPE, 
  stderr=subprocess.PIPE
)
err, output = p.communicate()
print(err)
print(output)

EXTRA

for people who are using python2:

execfile(file_path)

exec_file documentation



Source: stackoverflow