如何在Python中创建一个脚本来分别利用uncompyle6工具反编译当前目录下的.pyc文件,并将反编译后的代码保存在同一目录下?
时间: 2024-10-21 21:08:29 浏览: 42
在Python中,你可以编写一个简单的脚本,使用os模块遍历当前目录查找.pyc文件,然后调用`decompile`函数(假设已经定义好了)对每个找到的.pyc文件进行反编译。下面是一个示例脚本:
```python
import os
import subprocess
def decompile(pyc_file):
# 上述 `decompile` 函数定义见上文...
# 获取当前工作目录
current_dir = os.getcwd()
# 遍历当前目录下的 .pyc 文件
for filename in os.listdir(current_dir):
if filename.endswith('.pyc'):
base_name = filename[:-1] # 删除 .pyc 后缀
output_file = f"{base_name}.py" # 新的源码文件名
uncompyle6_cmd = ['uncompyle6', filename]
with open(output_file, 'w') as out_file:
subprocess.run(uncompyle6_cmd, stdout=out_file)
print(f'{filename} 已经成功反编译为 {output_file}')
```
这个脚本首先获取当前工作目录,然后通过`os.listdir()`列出所有文件,如果文件名以'.pyc'结尾,就认为它是待处理的。接下来,它会生成对应的源码文件名,执行uncompyle6命令并将结果写入新文件中。
请注意,你需要确保你的系统中已经安装了`uncompyle6`并且可以在命令行直接运行。如果未安装,可以使用包管理器如pip进行安装。
阅读全文