2013-11-26 144 views
1

userinputed字符串作爲一個模塊,我想導入文件,這是從用戶inputed作爲字符串進口在Python

說:

a=raw_input("File : ") 
import a #How do i import a user defined string which is actually a file 

回答

1

,你可以這樣做:

m = __import__(a) 

在這種情況下m是對象模塊爲例:

>>> m = __import__('sys') 
>>> m.path 
['', '/usr/lib/python2.7', '/usr/local/lib/python2.7/dist-packages' ... ] 
7

要非常小心這樣做。除非你確定你知道你在做什麼,否則導入任意代碼是一個可怕的想法。

這就是說,你可以做到這一點使用內置importlib模塊: http://docs.python.org/2.7/library/importlib.html

importlib.import_module(a) 
+0

您應該添加文件夾文件到'sys.path',否則會失敗。 –

+1

對,這相當於'import a',因爲它必須能夠在模塊搜索位置找到'a',其中'sys.path'是主要的。完整的文檔比您通常需要的更詳細:http://docs.python.org/2.7/reference/simple_stmts.html#the-import-statement –