• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 分析并输出Python代码依赖的库的实现代码

分析并输出Python代码依赖的库的实现代码

作者:mdxy-dxy 字体:[增加 减小] 来源:互联网

mdxy-dxy 通过本文主要向大家介绍了python代码库,python标准库源代码,python怎么编代码,python源代码下载,python程序代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

用法:
分析一个脚本的依赖: 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
</div>

</div>

您可能想查找下面的文章:

  • 分析并输出Python代码依赖的库的实现代码

相关文章

  • python计算圆周率pi的方法
  • python使用PyV8执行javascript代码示例分享
  • Python求解平方根的方法
  • Python开发的单词频率统计工具wordsworth使用方法
  • 简单讲解Python中的闭包
  • 详解Python中的Cookie模块使用
  • tensorflow实现在函数中用tf.Print输出中间值
  • Python循环语句中else的用法总结
  • python中global与nonlocal比较
  • python实现多线程采集的2个代码例子

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python遍历数组的方法小结
    • Python 元组(Tuple)操作详解
    • Python中AND、OR的一个使用小技巧
    • Flask框架的学习指南之开发环境搭建
    • Python 学习笔记
    • python将ip地址转换成整数的方法
    • python下读取公私钥做加解密实例详解
    • python 切片和range()用法说明
    • 分享15个最受欢迎的Python开源框架
    • Python安装使用命令行交互模块pexpect的基础教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有