假设我有一个名为“Files”的文件夹,其中包含许多不同的python文件。
path = "C:\Python27\Files"
os.chdir(path)
filelist = os.listdir(path)
print(filelist)
这给了我一个列表,其中包含“Files”文件夹中所有python文件的名称。
我想将这些文件中的每一个导入一个更大的python程序,一次一个,作为一个模块。这样做的最佳方式是什么?
答案 0 :(得分:1)
将__init__.py
添加到文件夹,您可以将文件导入为from Files import *
答案 1 :(得分:1)
imp模块有两个功能,它们协同工作以动态导入模块。
import imp
import traceback
filelist = [os.path.splitext(x)[0] for x in filelist] # name of the module w/o extension
for f in filelist: # assume files in directory d
fp, pathname, description = imp.find_module( f, [d])
try:
mod = imp.load_module(x, fp, pathname, description)
except:
print(traceback.format_exc())
finally:
# must always close the file handle manually:
if fp:
fp.close()
答案 2 :(得分:0)
如果要在运行时导入文件 使用此功能:
def load_modules(filelist):
modules = []
for name in filelist:
if name.endswith(".py"):
name = os.path.splitext(name)[0]
if name.isidentifier() and name not in sys.modules:
try:
module = __import__(name)
modules.append(module)
except (ImportError, SyntaxError) as err:
print(err)
return modules