from pathlib import Path import ast,difflib for name in ['wechat_gui_qt.py','assets/ui/console-app.js','wechat_bot.py','reply_database.py','wxwork_db.py']: left=(Path('C:/kefu/wechat_rpa')/name).read_text(encoding='utf-8-sig').splitlines() right=(Path('C:/wechat_rpa')/name).read_text(encoding='utf-8-sig').splitlines() print(name) if name=='wechat_gui_qt.py': for lines,label in [(left,'source'),(right,'target')]: tree=ast.parse('\n'.join(lines)) for node in ast.walk(tree): if isinstance(node,ast.FunctionDef) and node.name in {'editKnowledge','_console_ai_state'}: print(label,node.name,node.lineno,node.end_lineno) for line in difflib.unified_diff(left,right,n=1): if line.startswith('-') and not line.startswith('---'):print(line[:260]) elif name.endswith('.js'): for line in difflib.unified_diff(left,right,n=1): if len(line)>350:print(line[:150]+' ... [long line]') else:print(line) else: for line in difflib.unified_diff(left,right,n=1):print(line[:300])