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 图片验证码代码
Dec 07 Python
Python图算法实例分析
Aug 13 Python
基于hashlib模块--加密(详解)
Jun 21 Python
python抓取文件夹的所有文件
Feb 27 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
Python BS4库的安装与使用详解
Aug 08 Python
Python提取特定时间段内数据的方法实例
Apr 01 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
selenium框架中driver.close()和driver.quit()关闭浏览器
Dec 08 Python
Python干货实战之八音符酱小游戏全过程详解
关于python pygame游戏进行声音添加的技巧
Oct 24 #Python
python实现简单石头剪刀布游戏
Python 数据结构之十大经典排序算法一文通关
Python 的 sum() Pythonic 的求和方法详细
Oct 16 #Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
You might like
个人站长制做网页常用的php代码
2007/03/03 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
Web程序工作原理详解
2014/12/25 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
this[] 指的是什么内容 讨论
2007/03/24 Javascript
有趣的javascript数组定义方法
2010/09/10 Javascript
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
js css自定义分页效果
2017/02/24 Javascript
JSONP基础知识详解
2017/03/19 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
电子银行营销方案
2014/02/22 职场文书
文体活动总结范文
2014/05/05 职场文书
课外活动总结
2015/02/04 职场文书
中秋节寄语2015
2015/03/24 职场文书
防汛通知
2015/04/25 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python