Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to pass value of a variable to import statement in python

I'm really new to python. I'm using python<2.7. I have to import a file whose name I don't know at start. In fact I have to pass the name of file through command prompt, now I have read the name and stored in variable, but I don't know how to pass it to import statement. I'm trying the code

str = sys.argv[lastIndex]
from "%s" import *,str

but it's giving the error

File "IngestDataToMongo.py", line 86
from "%s" import *,str
        ^
SyntaxError: invalid syntax

So how to do it. Also is it possible with python <2.7, because for some reasons I can't change the version of Python or install anything where this code is running.

like image 940
Shirish Herwade Avatar asked Dec 26 '22 13:12

Shirish Herwade


2 Answers

You can use __import__() function instead to import modules. It accepts variables as its arguments.

But first of all, make sure you really need that - 90% of the time people do not really need that function.

like image 126
Tadeck Avatar answered Dec 31 '22 14:12

Tadeck


You should use importlib module

import importlib

mdl = 'urllib'
your_module = importlib.import_module(mdl)
your_module.quote
>>> <function urllib.quote>

EDIT

Thanks to Tadeck - This does work for python 2.7 and 3.1+

like image 41
alexvassel Avatar answered Dec 31 '22 13:12

alexvassel