欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

分析并輸出Python代碼依賴的庫的實現代碼

 更新時間:2015年08月09日 18:17:30   投稿:mdxy-dxy  
這篇文章主要介紹了分析并輸出Python代碼依賴的庫的實現代碼,需要的朋友可以參考下

用法:
分析一個腳本的依賴: 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+scapy抓包與解析

    關于python+scapy抓包與解析

    這篇文章主要介紹了關于python+scapy抓包與解析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python進程的通信Queue、Pipe實例分析

    Python進程的通信Queue、Pipe實例分析

    這篇文章主要介紹了Python進程的通信Queue、Pipe,結合實例形式分析了Python進程通信Queue、Pipe基本概念、用法及操作注意事項,需要的朋友可以參考下
    2020-03-03
  • python 實現檢驗33品種數據是否是正態(tài)分布

    python 實現檢驗33品種數據是否是正態(tài)分布

    今天小編就為大家分享一篇python 實現檢驗33品種數據是否是正態(tài)分布,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python應用自動化部署工具Fabric原理及使用解析

    Python應用自動化部署工具Fabric原理及使用解析

    這篇文章主要介紹了Python應用自動化部署工具Fabric原理及使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python矩陣轉換為一維數組的實例

    python矩陣轉換為一維數組的實例

    今天小編就為大家分享一篇python矩陣轉換為一維數組的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python2.x和3.x下maketrans與translate函數使用上的不同

    Python2.x和3.x下maketrans與translate函數使用上的不同

    這篇文章主要介紹了Python2.x和3.x下maketrans與translate函數使用上的不同,這兩個函數建立映射來替換內容是Python學習當中的基礎知識,需要的朋友可以參考下
    2015-04-04
  • vscode調試django項目的方法

    vscode調試django項目的方法

    這篇文章主要介紹了vscode調試django項目的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Python如何優(yōu)雅獲取本機IP方法

    Python如何優(yōu)雅獲取本機IP方法

    這篇文章主要介紹了Python如何優(yōu)雅獲取本機IP方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • python pandas實現excel轉為html格式的方法

    python pandas實現excel轉為html格式的方法

    今天小編就為大家分享一篇python pandas實現excel轉為html格式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python創(chuàng)建多線程的兩種常用方法總結

    Python創(chuàng)建多線程的兩種常用方法總結

    這篇文章主要為大家詳細介紹了Python中創(chuàng)建多線程的兩種常用方法,文中的示例代碼簡潔易懂,對我們掌握Python有一定的幫助,需要的可以收藏一下
    2023-05-05

最新評論