当前位置: 首页 > 图灵资讯 > 行业资讯> python3 os如何封装posix?

python3 os如何封装posix?

来源:图灵python
时间: 2024-11-13 16:27:29

我们知道有些函数不是直接使用的,需要在一定的环境中或者组合其他的函数同时使用,这就涉及了一点嵌套函数的相关知识。而我们今天所说的posix也是同样需要借助python os的封装,才能发挥出它的作用。当然这样说小伙伴们不是很好能理解清楚,下面我们来举个例子就明白了。

通过 help(os) 可以找到源文件查看,

下面截取相关代码来看(直接用注释解释了):

#返回一个包含内建模块名字的元组,包含所有已经编译到Python解释器的模块名字
_names=sys.builtin_module_names
#__all__只影响到了from<module>import*这种导入方式
def_get_exports_list(module):
try:
returnlist(module.__all__)
exceptAttributeError:
return[nfornindir(module)ifn[0]!='_']
#判断当前操作系统类型
#posix代表类Unix系统,nt表示Windows系统
#我们的macOS就是类Unix系统,只截取这部分代码
if'posix'in_names:
name='posix'#表示操作系统类型
linesep='\n'#定义了当前平台使用的行终止符
#os模块其实就是对posix或nt模块的二次封装,这样的好处就是实现了对不同平台的兼容
fromposiximport*
try:
fromposiximport_exit
__all__.append('_exit')
exceptImportError:
pass
importposixpathaspath#我们常用的os.path实际上是ntpath或者posixpath模块

try:
fromposiximport_have_functions
exceptImportError:
pass

importposix
__all__.extend(_get_exports_list(posix))
delposix

现在我们知道了在 macos平台上,os 模块实际上是对 posix 模块的封装。

通过代码案例我们可以看出,使用python os封装posix后,就可以解决不同平台的兼容问题了,是不是很神奇~更多Python学习推荐:PyThon学习网教学中心