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清除字符串中间空格的实例讲解
May 11 Python
python使用递归的方式建立二叉树
Jul 03 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
python自动保存百度盘资源到百度盘中的实例代码
Aug 26 Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 Python
python opencv调用笔记本摄像头
Aug 28 Python
初次部署django+gunicorn+nginx的方法步骤
Sep 11 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
django教程如何自学
Jul 31 Python
Python安装并操作redis实现流程详解
Oct 13 Python
Python实现哲学家就餐问题实例代码
Nov 09 Python
python3 re返回形式总结
Nov 20 Python
Python干货实战之八音符酱小游戏全过程详解
关于python pygame游戏进行声音添加的技巧
Oct 24 #Python
python实现简单石头剪刀布游戏
Python 数据结构之十大经典排序算法一文通关
Python 的 sum() Pythonic 的求和方法详细
Oct 16 #Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
You might like
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
laravel按天、按小时,查询数据的实例
2019/10/09 PHP
基于jQuery捕获超链接事件进行局部刷新代码
2012/05/10 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
vue实现密码显示隐藏切换功能
2018/02/23 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
python实现连续图文识别
2018/12/18 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
python实现LRU热点缓存及原理
2019/10/29 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
中英文自我评价语句
2013/12/20 职场文书
党员学习十八大感想
2014/01/17 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
中标通知书
2015/04/17 职场文书
新农村建设指导员工作总结
2015/08/13 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
Hive导入csv文件示例
2022/06/25 数据库