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 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
编程语言Python的发展史
Sep 26 Python
零基础写python爬虫之爬虫编写全记录
Nov 06 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
Django 简单实现分页与搜索功能的示例代码
Nov 07 Python
opencv之为图像添加边界的方法示例
Dec 26 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
python中的plt.cm.Paired用法说明
May 31 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
Python干货实战之八音符酱小游戏全过程详解
关于python pygame游戏进行声音添加的技巧
Oct 24 #Python
python实现简单石头剪刀布游戏
Python 数据结构之十大经典排序算法一文通关
Python 的 sum() Pythonic 的求和方法详细
Oct 16 #Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
You might like
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
php版微信公众号接口实现发红包的方法
2016/10/14 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
jQuery 一个图片切换的插件
2011/10/09 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
javascript避免数字计算精度误差的方法详解
2014/03/05 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
详解Webpack DLL用法以及功能
2017/07/11 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
2018/05/23 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
python 高阶函数简单介绍
2021/02/19 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
绩效工资分配方案
2014/01/18 职场文书
文秘专业应届生求职信
2014/05/26 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
文案策划岗位职责
2015/02/11 职场文书
优秀志愿者感言
2015/08/01 职场文书
2015年乡镇组织委员工作总结
2015/10/23 职场文书