gpt4 book ai didi

python - 解析python设置文件

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:09 25 4
gpt4 key购买 nike

我需要编写一个 python 脚本来读取和解析设置 python 文件。设置包含一些变量和函数调用。

例子:

setup.py
x = 5
mylist [ 1, 2, 3]
myfunc(4)
myfunc(5)
myfunc(30)


main.py
.
parse_setup('setup.py')
.

我想解析设置文件并“查看”定义了什么样的变量以及调用了什么样的函数。由于安装文件是用 python 编写的,所以我认为最简单的方法是动态导入安装文件(动态导入,因为安装文件路径是 main 的输入)。

问题是导入失败,因为 setup.py 中调用的 myfucn() 未定义。

有没有办法让我拦截 setup.py 中的 myfunc() 调用并执行我自己在 main.py 中定义的函数>?

如果我要执行的函数是成员函数怎么办?

谁能想到一个更好的方法来提取设置文件中的数据,我真的不想逐行阅读它。

谢谢!

最佳答案

如果您的 setup.py 文件包含这些 Python 语句:

x = 5
mylist = [ 1, 2, 3]
y = myfunc(4)
z = myfunc(x)

你可以在 main.py 中做这样的事情来找出它定义了什么:

def myfunc(n):
return n**2

def parse_setup(filename):
globalsdict = {'__builtins__': None, 'myfunc': myfunc} # put predefined things here
localsdict = {} # will be populated by executed script
execfile(filename, globalsdict, localsdict)
return localsdict

results = parse_setup('setup.py')
print results # {'y': 16, 'x': 5, 'z': 25, 'mylist': [1, 2, 3]}

关于python - 解析python设置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13219857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com