Python OS库源代码位置

16

我正在学习模式中 - 这可能是一个愚蠢的或rtfm问题,但这是它: Python os库的源代码在哪里? 我已经下载了Python tarball。 里面有很多用途,但似乎找不到源代码本身以及它如何连接到操作系统。 我有兴趣看看os.*调用(例如os.read,os.write ...)做了什么。 我看过内置文件,但在那里没有看到任何东西。 感谢提示。

2个回答

21

os的实现分布在许多文件中。

核心C函数大部分位于Modules/posixmodule.c,尽管其名称为POSIX模块,但它包含了Windows NT和OS/2操作系统例程的实现,除了POSIX例程。

C函数的包装函数位于Lib/os.py,而os.path函数由Lib/ntpath.pyLib/posixpath.py根据您所使用的平台提供。


1
如何查看模块中特定函数的实现?我可以找到os的路径,但无法找到getcwd()函数的定义。 - gaganso
2
@SilentMonk getcwd 是 posixmodule.c 中定义的函数之一。你可以在这里找到它的实现(Python 2.7.3):Modules/posixmodule.c#L1978 - nneonneo

5

如果模块是在Python代码中定义的,则可以通过导入模块后检查模块的__file__属性来查找文件:

>>> import os
>>> os.__file__
'C:\\python27\\lib\\os.pyc'

如果文件是.pyc,则只需删除最后一个'c'即可获取.py文件。
但是,您要查找的函数实际上可能是从编译的C扩展中导入的。

os的情况下,这个建议几乎没有用。请参考neo的回答。 - Antimony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接