Python:动态(加载)调用其他模块的函数
天蓬老师
天蓬老师 2017-04-17 14:30:04
[Python讨论组]
└─test
    │  main.py
    ├─0309
    │      index.py
    ├─0310
    │      index.py
    ├─0311
    │      index.py
    ├─0312
    │      index.py
    └─0313
            index.py

如上图所示,在test目录中,有一个main.py的文件,和其他几个以日期命名的文件夹,在文件夹中,都有一个index.py,每个index.py的函数命名都一样,只有一个mian().
eg:index.py

def main():
    print "main"

现在,我想在mian.py实现以下功能:
只需提供一个日期名,如:
python main.py -0311
就会执行0311/index.py中的main()方法
注:test目录下的子文件夹数量并不是固定的,每天都会新增,但index.py中的函数命名是固定的

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
阿神
import sys
sys.path.append('%s' % sys.argv[1]) 

from index import main

main()
PHP中文网

https://docs.python.org/2/library/imp.html


fp, pathname, description = imp.find_module("index",["0309"]) try: m = imp.load_module("0309_index", fp, pathname, description) m.main() # 这样就可以直接执行了,详细信息看官方文档。 finally: if fp: fp.close()

同时表示临时换域名造成第三方登陆失效太坑了。
一直无密码第三方登陆的,又重置的密码才上来的。

天蓬老师
date = '0311'
exec "from %s.index import main as %s_main" %(date, date)

0311_main()
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号