分析并输出Python代码依赖的库的实现代码
2018-10-12 13:50
741 查看
用法:
分析一个脚本的依赖: analysis_dependency.py script1.py
递归分析依赖: analysis_dependency.py script1.py -r
#!/usr/bin/env python # encoding: utf-8 # source: https://github.com/MrLYC/ycyc/blob/dev/tools/analysis_dependency.py import ast import importlib import inspect class Analysis(ast.NodeTransformer): def __init__(self, paths, recursion): self.modules = list() self.paths = list(paths) self.recursion = recursion def add_module(self, module): if module and module not in self.modules: self.modules.append(module) if self.recursion: try: path = inspect.getsourcefile(importlib.import_module(module)) if path: self.paths.append(path) except: pass def visit_Import(self, node): for i in node.names: self.add_module(i.name) def visit_ImportFrom(self, node): self.add_module(node.module) def analysis(self): for p in self.paths: try: with open(p,"rt") as fp: self.visit(ast.parse(fp.read(), p)) except: pass return tuple(self.modules) if __name__ =="__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument("paths", nargs="+") parser.add_argument("-r","--recursion", action="store_true", default=False) args = parser.parse_args() analysisor = Analysis(args.paths, args.recursion) for m in analysisor.analysis(): print m
相关文章推荐
- 分析并输出Python代码依赖的库的实现代码
- 利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化 分类: Python ArcGIS for desktop ArcGIS for server 2015-08-06 19:49 3人阅读 评论(0) 收藏
- [深度学习]Python/Theano实现逻辑回归网络的代码分析
- 随机森林的原理分析及Python代码实现
- Holt-Winters模型原理分析及代码实现(python)
- Python 提取dict转换为xml/json/table并输出的实现代码
- python实现分析apache和nginx日志文件并输出访客ip列表的方法
- 主成分分析(PCA)Python代码实现
- 《200行Python代码实现2048》分析
- logistic回归算法详细分析与Python代码实现注释
- python 域名分析工具实现代码
- python代码实现 对时间戳格式化输出
- Python实现统计代码行的方法分析
- [深度学习]Python/Theano实现逻辑回归网络的代码分析
- python自动化工具日志查询分析脚本代码实现
- 《200行Python代码实现2048》的分析
- 利用Python分析GP服务运行结果的输出路径 & 实现服务输出路径的本地化
- [置顶] 【二分-kMeans算法】二分K均值聚类分析与Python代码实现
- Python 提取dict转换为xml/json/table并输出的实现代码