python中如何挂载自己写的在子目录下的模块?

main.py

layout_format = {}

for filename in os.listdir('mod'):
    if filename.endswith('py'):
        for line in open(os.path.join('mod',filename)):
            eval(line)
print(layout_format)
exit()

mod/md.py

markdown_template = "# %(title)s\r\nAuthor: %(author)s\r\nCreate Date: %(created_time)s\r\nLast Update: %(updated_time)s\r\n\r\n%(content)s\r\n"


def markdown(self):
    return markdown_template % self


layout_format['md'] = markdown

然而执行出错。。。我想问下,一般python中怎么挂载自己写的子模块呢?

阅读 3.2k
3 个回答
layout_format = {}

for filename in os.listdir('mod'):
    if filename.endswith('py'):
        exec(open(os.path.join('mod',filename)).read())

print(layout_format)
exit()

原来这样就可以了。。。。JavaScript的eval!=python的eval,对应的是exec

直接 import 就好了啊。

import mod.md

import 其他模块一样的。

import sys,os
sys.path.append(os.path.abspath('.'))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题