python:将bash / cmd行中的参数作为对象处理的更好的解决方法

时间:2013-07-16 16:04:19

标签: python python-2.7

我正在传递像

这样的args
python file.py arg1 arg2 arg3

我想知道是否有办法将这些args视为对象而不是以下代码的字符串:

one = sys.argv[1]
two = sys.argv[2]
three = sys.argv[3]
from one import two
    a = two.three()

因为一两三就是字符串。如何将它们解析为对象?

更新:

pkg = import_module(two, package=one)

给出

__import__(name)                                                              
ImportError: No module named <whatever_module_name>

3 个答案:

答案 0 :(得分:2)

您可以使用importlib for Python 2importlib for Python 3

import importlib
path = importlib.import_module('os.path')
print(path.join('a','b'))

答案 1 :(得分:1)

您可以使用内置的__import__imp module以编程方式导入对象:

# Import 'name' relative to 'path'
module = imp.load_module(name, *imp.find_module(name, [path]))

每当我想以编程方式导入模块时,我就是这样做的,但是imp.find_module会返回一个3元组:

fil, path, desc = imp.find_module(name, [path])
module = imp.load_module(name, fil, path, desc)

答案 2 :(得分:1)

我认为你想要的是__importing__

spam = __import__('spam', globals(), locals(), [], 0)