|
|
自己动手写的,有些简陋大家见谅,这是结合小甲鱼15课与27课的成果。谢谢大家!
鱼油你好!很高兴看到你将学到的知识(文件操作和 dis 模块)灵活运用起来。你这个思路很棒,可以快速查看一个 Python 脚本的字节码。
不过,你的代码在健壮性上还有提升空间。比如,如果用户输入了一个不存在的文件名,程序会直接崩溃;同时,打开的文件最好在使用后显式关闭。
下面是一个改进后的版本,增加了错误处理,并且代码结构更清晰:
- from dis import dis
- from sys import argv
- def main():
- # 提示用户输入文件名
- file_name = input("请输入要分析的 Python 脚本文件名 (例如: ex015.py) > ")
- try:
- # 使用 'with' 语句打开文件,这样可以确保文件在使用后被正确关闭
- with open(file_name, 'r', encoding='utf-8') as f:
- code_content = f.read()
- except FileNotFoundError:
- print(f"错误:找不到文件 '{file_name}',请检查文件名和路径。")
- return # 如果文件不存在,直接结束函数
- except Exception as e:
- # 捕获其他可能的异常,例如编码错误
- print(f"打开或读取文件时发生未知错误:{e}")
- return
- # 如果成功读取文件,则反汇编其内容
- print(f"\n--- 开始反汇编 {file_name} ---")
- dis(code_content)
- print(f"--- 反汇编结束 ---")
- if __name__ == "__main__":
- main()
复制代码
**主要改进点:**
- 使用了 try...except 来捕获可能出现的错误(如文件不存在),让程序更友好。
- 使用 with open(...) as f: 来管理文件,这是一个好习惯,能自动处理文件的打开和关闭。
- 将主要逻辑放在一个 main() 函数里,结构更清晰。
- 增加了一些提示信息,让输出结果更直观。
继续保持这种动手实践的热情,这是学习编程最好的方式!加油!{:5_144:}
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|