使用第三方库difflib和inspect来比较两个Python文件中已执行的行。
示例代码:
import difflib import inspect
def get_executed_lines(source_file): executed_lines = [] with open(source_file, 'r') as f: source_code = f.read() source_lines, start_line = inspect.getsourcelines(source_code) for i, line in enumerate(source_lines): if '#' in line: line = line[:line.find('#')] if line.strip(): executed_lines.append(start_line + i - 1) return executed_lines
def compare_executed_lines(file1, file2): lines1 = get_executed_lines(file1) lines2 = get_executed_lines(file2) diff = difflib.ndiff(lines1, lines2) return '\n'.join(diff)
file1 = 'test1.py' file2 = 'test2.py' print(compare_executed_lines(file1, file2))