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脚本
Sep 01 Python
介绍Python的@property装饰器的用法
Apr 28 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
Django开发的简易留言板案例详解
Dec 04 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
自定义django admin model表单提交的例子
Aug 23 Python
python实现最大优先队列
Aug 29 Python
python标准库OS模块详解
Mar 10 Python
pytorch中的weight-initilzation用法
Jun 24 Python
python 实现全球IP归属地查询工具
Dec 18 Python
Python干货实战之八音符酱小游戏全过程详解
关于python pygame游戏进行声音添加的技巧
Oct 24 #Python
python实现简单石头剪刀布游戏
Python 数据结构之十大经典排序算法一文通关
Python 的 sum() Pythonic 的求和方法详细
Oct 16 #Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
You might like
Dedecms常用函数解析
2008/02/01 PHP
PHP数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
php学习之 数组声明
2011/06/09 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
Python3实现连接SQLite数据库的方法
2014/08/23 Python
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python add_argument()用法解析
2020/01/29 Python
python实现电子词典
2020/03/03 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
Django DRF APIView源码运行流程详解
2020/08/17 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
土木工程应届生自荐信
2013/09/24 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
住房抵押登记委托书
2014/09/27 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers