查找PYC文件中的内容

4 投票
4 回答
5048 浏览
提问于 2025-04-16 02:52

这可能是个新手问题,但……

我有一个pyc文件需要使用,但我没有任何关于它的文档。有没有办法知道里面有哪些类和函数,以及它们需要什么变量?我不需要写代码,只想知道怎么运行它。

谢谢

4 个回答

1

最简单的方法是访问 http://depython.com

9

只要你能导入这个文件,就可以查看它的内容;不管这个文件是来自 .py 还是 .pyc 格式都没关系。

>>> import getopt
>>> dir(getopt)
['GetoptError', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'do_longs', 'do_shorts', 'error', 'getopt', 'gnu_getopt', 'long_has_args', 'os', 'short_has_arg']
>>> type(getopt.getopt)
<type 'function'>
>>> inspect.getargspec(getopt.getopt)
ArgSpec(args=['args', 'shortopts', 'longopts'], varargs=None, keywords=None, defaults=([],))
>>> help(getopt.getopt)
Help on function getopt in module getopt:
...
5

如果你把它放在你的导入路径上,并通过名字导入它,你可以使用 dir

import foo
dir(foo)

你也可以使用 `help`。

help(foo)

这样可以获取文档字符串。以上这两种方法都可以用在 foo 里面的任何东西上。需要注意的是,不同版本的字节码可能会有所不同,所以这可能在你的 Python 版本上有效,也可能无效。如果出现这种情况,我能建议的就是尝试不同的版本,直到找到一个有效的。


如果你需要找出一个函数的参数,首先要获取参数的数量,也就是 argcount。

argcount = f.func_code.co_argcount

然后这些参数就是前面提到的 argcount 个变量。

f.func_code.co_varnames

不过这并不能告诉你这个函数期望的参数是什么,只有在没有文档字符串的情况下才比较有用,但确实可以这样做。

撰写回答