此片段来自较早的答案。大约有一年了(答案没有被接受)。我是 Python 新手,我发现系统路径真的很痛苦。我在不同目录中的脚本中编写了一些函数,我希望能够将它们导入到新项目中,而不必费力。
这是片段:
def import_path(fullpath):
""" Import a file with full path specification. Allows one to
import from anywhere, something __import__ does not do.
"""
path, filename = os.path.split(fullpath)
filename, ext = os.path.splitext(filename)
sys.path.append(path)
module = __import__(filename)
reload(module) # Might be out of date
del sys.path[-1]
return module
它来自这里:如何在Python中进行相对导入?
我想要一些关于我是否可以使用它的反馈 - 以及是否有任何对新手来说可能不明显的不良副作用。
我打算像这样使用它:
import_path(/home/pydev/path1/script1.py)
script1.func1()
etc
按照我想要的方式使用该功能是否“安全”?
“官方”且完全安全的方法是imp标准Python库的模块。
Use imp.find_module在精确指定的可接受目录列表中查找模块——它返回一个三元组(file, pathname, description)
——如果不成功,file
实际上是None
(但它也可以提高ImportError
所以你应该使用try
/except
为此以及检查if file is None:
).
如果搜索成功,请致电imp.load_module (in a try
/finally
以确保关闭文件!)在第一个参数之后添加上述三个参数,并且参数必须相同name
你传递到find_module
-- 它返回模块对象(唷;-)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)