我想從指定爲參數的文件中導入變量。我如何實現這一目標?從python中的用戶指定文件導入變量
例如:假設我的文件是myfile.py 我稱其爲
python myfile.py service.py
現在我想導入service.py的變量在我myfile.py。
我該如何解決這個問題?
我想從指定爲參數的文件中導入變量。我如何實現這一目標?從python中的用戶指定文件導入變量
例如:假設我的文件是myfile.py 我稱其爲
python myfile.py service.py
現在我想導入service.py的變量在我myfile.py。
我該如何解決這個問題?
的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?
有是你可能會問的兩個問題。這可能是我如何導入文件從命令行進行處理?你可以得到像這樣的字符串
fileName = sys.argv(1)
fileHandle = open(fileName, 'r')
如果你想在該文件中找到參數,這有點困難。我需要了解更多關於格式的信息以幫助您。
我想你的意思是括號括起來的'sys.argv [0]'。不管怎麼說,這不是OP正在做的事情。 –
實際上,我認爲你的意思是'sys.argv [1]',因爲'0'是你正在運行的程序的名字 –
然後,您可以訪問變量,例如,在該模塊中指定的'foo'作爲'module.foo'。 –