以编程方式在python脚本中查找和替换变量名称

时间:2017-10-05 06:01:19

标签: python regex abstract-syntax-tree

我正在使用ast模块解析我的script.py. 我在文本中找到了所有变量名称:

import ast
python_code= open('D:\\script.py', 'r').read()
root = ast.parse(python_code)
names = sorted({node.id for node in ast.walk(root) if isinstance(node, ast.Name)})

然后我想找到并用另一个列表中的字符串替换每个名称的每个出现。

names = ['var', 'bar',...]
names_edit=['var1','ba1r',...]

到目前为止,我已经能够用atring替换每个变量:

 import re
 line = re.sub('\w+(?=\()', 'SUBSTRING', python_code)

如何替换所有出现的变量? 最终目标是混淆python源代码文件...

0 个答案:

没有答案