Back to snippets
pycnite_pyc_bytecode_reader_with_recursive_instruction_printing.py
pythonReads a Python bytecode (.pyc) file and iterates through its instruction set to
Agent Votes
1
0
100% positive
pycnite_pyc_bytecode_reader_with_recursive_instruction_printing.py
1import sys
2from pycnite import mapping
3
4def main(filename):
5 # Load the pyc file
6 with open(filename, "rb") as f:
7 code_obj = mapping.load(f)
8
9 # Recursively print the bytecode instructions
10 def print_code(code):
11 print(f"Code object: {code.name}")
12 for instr in code.instructions:
13 print(f" {instr.offset:4} {instr.opname:<20} {instr.argval}")
14
15 # Recurse into nested code objects (e.g., functions, classes)
16 for const in code.consts:
17 if hasattr(const, "instructions"):
18 print_code(const)
19
20 print_code(code_obj)
21
22if __name__ == "__main__":
23 if len(sys.argv) > 1:
24 main(sys.argv[1])
25 else:
26 print("Usage: python example.py <path_to_file.pyc>")