读取python⽂件中的所有函数及函数描述
在写代码的时候经常需要导⼊其他⽂件中的函数,或是需要观察某个python⽂件中所有函数的注释。但是⽹上了下没有到这样的程序,于是决定⾃⼰写⼀个。
⽰例程序如下,把该程序命名为 test.py
from my_function import func0, func1
def func2():
""" Discription: Call function 1
Args:
xx
Returns:
xx
"""
func1()
pass
def func3():
""" Discription: Do something
Args:
xx
Returns:
xx
"""
print("Hello worlld")
def main():
func0()
func2()
func3()
以上述程序为例,读取出这个程序⾥⾯所有的函数,以及函数的注释(Discription),输出结果如下:
——test.py中所有的函数列表
Function List:
func2()# Discription: Call function 1
func3()# Discription: Do something
main()#
——从test.py中导⼊函数
from test import func2, func3, main
实现的代码
# -*- coding: utf-8 -*-
"""
Discription: ⽤于读取 .py ⽂件中的所有函数
Note:
如果函数有注释(Discription),那么需要在三个引号后加⼀个空格才能识别,否则此程序可能会报错"""
path ="test.py"
func_lists =[]
func_note_lists =[]
func_lists_noparam =[]
python怎么读取文件中的数据with open(path, encoding='utf-8')as f:
line = f.readline()
while line:
if"def "in line:
k1, v1 = line.split(':',1)# 去除冒号之后的备注
func_i = k1[4:]
func_lists.append(func_i)# 去除 "def"
# 只读取函数,不包含参数
klist = func_i.split("(")# 防⽌函数的参数中有括号
k2 = klist[0]
func_lists_noparam.append(k2)
line_next = f.readline()
# 读取备注
if'"""'in line_next:
m, note = line_next.split('" ',1)
func_note_lists.append(note[:-1])
else:
func_note_lists.append("")
#print(k[4:])
line = f.readline()
# 输出函数列表 + 函数描述
print("\nFunction List:")
for i in range(len(func_lists)):
print("    "+ func_lists[i]+"  # "+ func_note_lists[i])
## 输出函数导⼊列表
str_import =""
for i in range(len(func_lists_noparam)):
str_import = str_import + func_lists_noparam[i]+", "
print("\nfrom "+ path[:-3]+" import "+ str_import[:-2])

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。