Reputation: 1094
Hi I have a directory in the same folder as my main script called 'actions' in this folder there are several scripts that may be used at any time by the main script. I am at the point where I have the name of the script in the form of a string in a variable called VAR (for the sake of example). I would like to be able to import this file using the variable.
Upvotes: 3
Views: 3655
Reputation: 1322
2021 update:
Python3.9.5's __import__()
includes this message:
Import a module. Because this function is meant for use by the Python interpreter and not for general use, it is better to use importlib.import_module() to programmatically import a module.
So it then becomes:
from importlib import import_module
import_module(modulename_or_relative_filename)
Upvotes: 0
Reputation: 601539
If your aim is simply to execute the files, you can use
with open(filename) as f:
exec(compile(f.read(), filename, "exec"))
or the Python 2.x function execfile()
.
If you actually want to import the modules using the full import machinery, you need an __init__.py
in the directory actions
, and can use something like
module = __import__("actions.foo")
to import actions/foo.py
.
Upvotes: 3