[Python] Importazione file esterni

Enrico Franchi enrico.franchi a gmail.com
Sab 8 Nov 2008 14:03:45 CET


On Nov 8, 2008, at 1:16 PM, Zanon Samuele wrote:

> ok... risolto... un'aktra domanda... posso importare un modulo  
> passato all'import mediante una variabile?
>
> cioè io sull'url o da un campo nascosto di un form mi passo il nome  
> del file da importare. prelevo il nome mediante:
>
> form = cgi.FieldStorage()
> tree = form.getvalue("tree")
>
> e se provo a vare:
>
> try:
>   import tree
> except ImportError:
>   print "Impossibile importare il modulo: " + tree
>
> mi dice che è impossibile importare il modulo che gli passo tramite  
> il tree.

Ovviamente. Non puoi farlo così. In secondo luogo mi sembra veramente  
una pessima cosa avere l'input dell'utente utilizzato per caricare  
codice.
L'input dovrebbe essere attentamente validato e controllato per  
assicurarsi che non sia possibile fonte di bachi o sia un attacco tout  
court.

Potresti comunque usare dare un occhio a __import__:

http://www.python.org/doc/2.5.2/lib/built-in-funcs.html
http://diveintopython.org/functional_programming/dynamic_import.html

Ma io fossi in te *non* lo userei in quel modo.


Maggiori informazioni sulla lista Python