gpt4 book ai didi

python - 自修改python脚本

转载 作者:太空狗 更新时间:2023-10-30 01:57:01 27 4
gpt4 key购买 nike

我想创建 python 脚本,它可以使用 Python Language Services 修改该脚本本身的代码或使用任何其他方式。
例如跟踪成功执行次数的脚本

import re
COUNT = 0

def updateCount():
# code to update second line e.g. COUNT = 0
pass

if __name__ == '__main__':
print('This script has run {} times'.format(COUNT))
updateCount()

成功执行此脚本后,代码应更改为

import re
COUNT = 1

def updateCount():
# code to update second line e.g. COUNT = 0
pass

if __name__ == '__main__':
print('This script has run {} times'.format(COUNT))
updateCount()

我想到的简单方法是在写入模式下打开 __file__ 并使用调节器表达式等进行必要的修改。但这没有用,我得到了异常 io.UnsupportedOperation: not readable。即使这种方法行得通,也会有很大的风险,因为它会破坏我的整个脚本。所以我正在寻找使用 Python 语言服务的解决方案。

最佳答案

是的,您可以使用语言服务实现 self 修改,如下例:

>>> def foo(): print("original foo")
>>> foo()
original foo
>>> rewrite_txt="def foo(): print('I am new foo')"
>>> newcode=compile(rewrite_text,"",'exec')
>>> eval(newcode)
>>> foo()
I am new foo

因此,通过新的动态生成的代码,您可以替换原始源文件中包含的内容,而无需修改文件本身。

关于python - 自修改python脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45175647/

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