import from a string
Matt McCredie
mccredie at gmail.com
Tue Nov 3 12:49:43 EST 2009
iu2 <israelu <at> elbit.co.il> writes:
>
> Hi,
>
> Having a file called funcs.py, I would like to read it into a string,
> and then import from that string.
> That is instead of importing from the fie system, I wonder if it's
> possible to eval the text in the string and treat it as a module.
>
> For example
>
> with file('funcs.py') as f: txt = r.read()
> string_import(txt, 'funcs') # is string_import possible?
>
> to have now a module called funcs with the functions defined in
> funcs.py.
You can do something like this:
import types
import sys
mymodule = types.ModuleType("mymodule", "Optional Doc-String")
with file('funcs.py') as f:
txt = f.read()
exec txt in globals(), mymodule.__dict__
sys.modules['mymodule'] = mymodule
Note that you shouldn't exec untrusted code.
You might also look at the __import__ funciton, which can import by python path.
You might also look at the imp module.
Matt
More information about the Python-list
mailing list