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 回调函数和回调方法的实现分析
Mar 23 Python
python如何实现int函数的方法示例
Feb 19 Python
Python异常处理操作实例详解
May 10 Python
Python可迭代对象操作示例
May 07 Python
Python依赖包整体迁移方法详解
Aug 15 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
python机器学习库xgboost的使用
Jan 20 Python
Python写捕鱼达人的游戏实现
Mar 31 Python
Django 构建模板form表单的两种方法
Jun 14 Python
python打包多类型文件的操作方法
Sep 21 Python
用python制作个视频下载器
Feb 01 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
Python干货实战之八音符酱小游戏全过程详解
关于python pygame游戏进行声音添加的技巧
Oct 24 #Python
python实现简单石头剪刀布游戏
Python 数据结构之十大经典排序算法一文通关
Python 的 sum() Pythonic 的求和方法详细
Oct 16 #Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
You might like
main.php
2006/12/09 PHP
PHP中的CMS的涵义
2007/03/11 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
PHP7扩展开发教程之Hello World实现方法示例
2017/08/03 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
如何运行/调试你的PHP代码
2020/10/23 PHP
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
jquery form表单序列化为对象的示例代码
2014/03/05 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
vue项目前端知识点整理【收藏】
2019/05/13 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
python异步任务队列示例
2014/04/01 Python
python进阶教程之动态类型详解
2014/08/30 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
python实现决策树
2017/12/21 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Spring @Enable模块驱动原理及使用实例
2020/06/23 Python
个人师德师风自我剖析材料
2014/09/29 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
商务考察邀请函模板
2015/02/02 职场文书
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis