python - 如何从二进制 python 文件中知道文件路径?
问题描述
我是python中的新手。
我在 /usr/bin/xyz.py 中看到了一个文件。每当我执行它时,它都会完成一些工作(与问题无关。)
我的问题是我想找到这个文件的代码在哪里(它正在生成这个python文件。我是说每当我在终端中写入文件名并按回车键就开始执行它。我也尝试用vim打开它.文件有不可读的字符)是否可以找到代码?
每当我用 vim 打开一个文件时,我都会得到这个。我正在远程打开它。
解决方案
这些是 Python 的文件类型:
.py
文件不是二进制文件,它们是纯 Python 代码。
.pyc
并且.pyo
是 Python 编译的文件(也不是完全二进制的)。唯一的区别是后者进行了优化。
.pyw
没有说明是否是二进制文件。它只是不会在 Windows 机器上打开控制台窗口。(默认情况下使用pythonw.exe
而不是运行)python.exe
任何文本编辑器都应该能够.py
正确打开文件。
根据您的屏幕截图,它可能是在 elf 中使用某种 py2exe 编译的 python 代码。也许cx_freeze?
取出代码一点也不容易:你可以通过使用像 gdb 这样的调试器直接从内存中取出它,或者尝试以某种方式反编译它。即使那样,您也只会得到 .pyc ,这是一段几乎无法理解的代码。
推荐阅读
- c++ - 在 C++ 运行时删除数组以节省一些内存
- node.js - “TypeError:无法读取未定义的属性'objectMode'”在firebase管理存储中调用bucket.upload时
- javascript - 为什么 discord.js 不让我做 guild.members.fetch()?
- scala - 获取 OneToMany 关系的子级
- python - Discord.py 获取消息中给定角色的所有成员
- c++ - 为什么我收到错误“:main() 必须具有 int 返回类型”?
- assembly - 如何在 fasm 中比较两个四字?
- c# - JsonDeserialize 为某些字符串返回 null(仅对某些字符串)
- node.js - 节点 - 删除文件引用的字符串数组
- c# - 如何将类库引用包含到 docker 文件中