python 标准库原理与用法详解之os.path篇


Posted in Python onOctober 24, 2021

os中的path

查看源码会看到,在os.py中有这样几行

if 'posix' in _names:
    name = 'posix'
    linesep = '\n'
    from posix import *
    #省略若干代码

elif 'nt' in _names:
    from nt import *
    try:
        from nt import _exit
        __all__.append('_exit')
    except ImportError:
        pass
    import ntpath as path
    #。。。

由于我们是在windows(WindowsNT)中,所以打开ntpath.py文件,可以看到开头就定义了8个成员变量

curdir = '.'    #当前路径标识
pardir = '..'   #
extsep = '.'    #扩展名分隔符
sep = '\\'
pathsep = ';'   #环境变量中路径的分隔符
altsep = '/'    #
defpath = '.;C:\\bin'   #环境变量的存放位置
devnull = 'nul'

此外,还有一个名为supports_unicode_filenames的布尔型成员变量,表示当前系统是否支持unicode的文件名。

可以理解为,path中封装了一些和操作系统相关,并且在不同操作系统下代码不同的功能,下面默认from os.path import *

输入为路径字符串的单参函数

  输出
normpath() 将路径修改为\\a\\b形式
normcase() 将路径修改为小写的\\a\\b形式
abspath() 返回绝对路径,其格式为X:\\a\\b
realpath() 返回绝对路径,并消除其中的链接
relpath() 返回相对路径,并消除其中的链接
split() 将输入路径分割为两个部分
例如X:\\a\\b会返回为X:\\ab
splitext() 分割文件的扩展名
splidrive() 分割出驱动器和其他路径
basename() 最下层的目录或文件名称,即split()[1]
dirname() 最下层目录或文件所在目录,即split()[0]
exists() 判断输入路径是否存在,存在则返回True,否则False
lexists() 如果路径损坏,也返回False
isabs() 判断输入路径是否为绝对路径
isfile() 判断输入路径是否为文件
isdir() 判断输入路径是否为目录
islink() 判断输入路径是否为链接
ismount() 判断输入路径是否为挂载点(在windows中就是盘符)
例如os.path.ismount('C:\\'),返回为True
expanduser() 通过~对路径进行扩展
expandvars() 将路径扩展为命令行识别的变量

部分示例

>>> from os.path import *
>>> p = abspath('.')
>>> p
'E:\\Documents\\00\\1022'
>>> exists(p)
True
>>> splitdrive(p)
('E:', '\\Documents\\00\\1022')
>>> isfile(p)
False

与文件信息相关的单参函数

其输入必须为文件路径,不得为目录

 

输出~.getsize()以字节为单位获取文件大小~.getctime()获取文件创建时间,c即create~.getmtime()获取文件最后修改时间,m即modify~.getatime()获取文件最后访问时间,a即access

  输出
~.getsize() 以字节为单位获取文件大小
~.getctime() 获取文件创建时间,c即create
~.getmtime() 获取文件最后修改时间,m即modify
~.getatime() 获取文件最后访问时间,a即access

输入为多个参数的函数

os.path.join,用于拼接路径,超甜的一个功能。很多新手会为新建文件夹而困扰,很多时候不知道是写D:\test还是D:\test\,而在os.path.join中这两者基本是等价的。

>>> os.path.join('test','\\test1','test2\\','test3')
'\\test1\\test2\\test3'
  判断是否相同
~.samefile(p1, p2) 判断目录或文件是否相同
~.sameopenfile(fp1, fp2) 两个打开的文件是否指向同一个文件

commonpath(list)commonprefix(list):返回list中所有path共有的最长路径,即距离所有文件和文件夹的共同父文件夹。二者区别在于,后者会在返回的路径加上\

到此这篇关于python 标准库原理与用法详解之os.path篇的文章就介绍到这了,更多相关python os.path内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python进程管理工具supervisor使用实例
Sep 17 Python
在Python中marshal对象序列化的相关知识
Jul 01 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
python爬取足球直播吧五大联赛积分榜
Jun 13 Python
Python Socket编程之多线程聊天室
Jul 28 Python
python requests爬取高德地图数据的实例
Nov 10 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
django之自定义软删除Model的方法
Aug 14 Python
pandas按行按列遍历Dataframe的几种方式
Oct 23 Python
Python实现socket非阻塞通讯功能示例
Nov 06 Python
PYcharm 激活方法(推荐)
Mar 23 Python
一篇文章搞懂python的转义字符及用法
Sep 03 Python
Python干货实战之八音符酱小游戏全过程详解
关于python pygame游戏进行声音添加的技巧
Oct 24 #Python
python实现简单石头剪刀布游戏
Python 数据结构之十大经典排序算法一文通关
Python 的 sum() Pythonic 的求和方法详细
Oct 16 #Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
You might like
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
当达到输入长度时表单自动切换焦点
2014/04/06 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
javascript显示倒计时控制按钮的简单实现
2016/06/07 Javascript
仿Angular Bootstrap TimePicker创建分钟数-秒数的输入控件
2016/07/01 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
js判断密码强度的方法
2020/03/18 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
简洁的十分钟Python入门教程
2015/04/03 Python
windows10下python3.5 pip3安装图文教程
2018/04/02 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
精灵市场:Pixie Market
2019/06/18 全球购物
销售行政专员职责
2014/01/03 职场文书
岗位职责的构建方法
2014/02/01 职场文书
校庆接待方案
2014/03/18 职场文书
大学毕业寄语大全
2014/04/10 职场文书
2014年党支部工作总结
2014/11/13 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android