2013-07-01 30 views
2

我想從指定爲參數的文件中導入變量。我如何實現這一目標?從python中的用戶指定文件導入變量

例如:假設我的文件是myfile.py 我稱其爲

python myfile.py service.py 

現在我想導入service.py的變量在我myfile.py。

我該如何解決這個問題?

回答

2

myfile.py內插入一個__import__

module = __import__(sys.argv[1].replace('.py', '')) 

將導入第一個命令行參數作爲module然後可以作爲被導入的任何其它模塊使用。 __import__的返回值是一個模塊。

真的在Python中,import mod只是mod = __import__('mod')的簡寫,如果您這麼做,您可以調用__import__函數。

一個例子:

>>> module = __import__("math") #same as "import math as module" 
>>> module.sqrt(16) 
4.0 

如果你想污染您用命令行參數的內容全局命名空間,你可以瞭解如何做一個from *進口這裏: How does one do the equivalent of "import * from module" with Python's __import__ function?

+1

然後,您可以訪問變量,例如,在該模塊中指定的'foo'作爲'module.foo'。 –

0

有是你可能會問的兩個問題。這可能是我如何導入文件從命令行進行處理?你可以得到像這樣的字符串

fileName = sys.argv(1) 
fileHandle = open(fileName, 'r') 

如果你想在該文件中找到參數,這有點困難。我需要了解更多關於格式的信息以幫助您。

+0

我想你的意思是括號括起來的'sys.argv [0]'。不管怎麼說,這不是OP正在做的事情。 –

+0

實際上,我認爲你的意思是'sys.argv [1]',因爲'0'是你正在運行的程序的名字 –