导语:
本文主要介绍了关于python3 os如何封装posix?的相关知识,希望可以帮到处于编程学习途中的小伙伴
我们知道有些函数是不能直接使用的,需要在一定的环境下使用,或者同时和其他函数结合使用,这就涉及到一些嵌套函数的知识。而我们今天说的posix也需要python os的封装才能发挥作用。当然,朋友们要理解清楚也不是很容易。我们举个例子来理解。
通过 help(os) 可以找到源文件查看,
下面截取相关代码来看
(直接用注释解释了):
# 返回一个包含内建模块名字的元组,包含所有已经编译到Python解释器的模块名字
_names = sys.builtin_module_names
# __all__ 只影响到了 from <module> import * 这种导入方式
def _get_exports_list(module):
try:
return list(module.__all__)
except AttributeError:
return [n for n in dir(module) if n[0] != '_']
# 判断当前操作系统类型
# posix代表类Unix系统,nt表示Windows系统
# 我们的 macOS 就是类Unix系统,只截取这部分代码
if 'posix' in _names:
name = 'posix' # 表示操作系统类型
linesep = '\n' # 定义了当前平台使用的行终止符
# os模块其实就是对posix或nt模块的二次封装,这样的好处就是实现了对不同平台的兼容
from posix import *
try:
from posix import _exit
__all__.append('_exit')
except ImportError:
pass
import posixpath as path # 我们常用的os.path实际上是ntpath或者posixpath模块
try:
from posix import _have_functions
except ImportError:
pass
import posix
__all__.extend(_get_exports_list(posix))
del posix
现在我们知道在macos平台上,os模块其实就是对posix模块的封装。
通过代码案例我们可以看出,使用python os封装posix后,就可以解决不同平台的兼容问题了,是不是很神奇~
更多Python学习推荐:
。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 为什么 Python 没有用于属性赋值的“with”语句?10/13
- ♥ Python的类,复杂吗02/28
- ♥ python3判断key是否存在于字典中09/13
- ♥ python BytesIO 对二进制数据进行操作11/13
- ♥ 如何解决Python无法输出中文的问题10/02
- ♥ 如何在python中打印字符串12/06
内容反馈