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笔记(1) 关于我们应不应该继续学习python
Oct 24 Python
python比较2个xml内容的方法
May 11 Python
Python实现的多线程http压力测试代码
Feb 08 Python
flask框架视图函数用法示例
Jul 19 Python
python多个模块py文件的数据共享实例
Jan 11 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
Python3多线程版TCP端口扫描器
Aug 31 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
python代码中怎么换行
Jun 17 Python
python3.7.3版本和django2.2.3版本是否可以兼容
Sep 01 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
Python干货实战之八音符酱小游戏全过程详解
关于python pygame游戏进行声音添加的技巧
Oct 24 #Python
python实现简单石头剪刀布游戏
Python 数据结构之十大经典排序算法一文通关
Python 的 sum() Pythonic 的求和方法详细
Oct 16 #Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
You might like
我的论坛源代码(六)
2006/10/09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php HandlerSocket的使用
2011/05/02 PHP
header中Content-Disposition的作用与使用方法
2012/06/13 PHP
PHP性能分析工具XHProf安装使用教程
2015/05/13 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
PHP函数积累总结
2019/03/19 PHP
javascript 写类方式之一
2009/07/05 Javascript
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
js中生成map对象的方法
2014/01/09 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
解决ztree搜索中多级菜单展示不全问题
2017/07/05 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
利用Python如何生成hash值示例详解
2017/12/20 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
大学生文员专业个人求职信范文
2014/01/05 职场文书
霸气队列口号
2014/06/18 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
五心教育心得体会
2014/09/04 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
2015年调度员工作总结
2015/04/30 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA