简介

os.path模块提供了一系列与文件路径和文件名有关的函数。接下来和大家分享一些比较常用的函数。

abspath

os.path.abspath(path)函数返回指定路径的绝对标准路径。
例如:

a = os.path.abspath('test.txt')
print a
b = os.path.abspath('.')
print b

上面一段代码的打印结果是:

/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt
/home/jackeyzhe/PycharmProjects/showMe/com/code001

basename

os.path.basename(path)函数用于获取路径的basename,例如a = os.path.basename('/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt')得到的a应为test.txt。
需要注意的是,这里的basename函数与Unix的basename程序有所不同,对于‘/home/jackeyzhe/PycharmProjects/showMe/com/code001/’Unix的basename程序返回的是‘code001’而该函数返回的是一个空字符串。

commonprefix

os.path.commonprefix(list)函数返回list中所有路径的最长的公共根目录(逐个字符判断)
例如代码

l = {'/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt', '/home/jackeyzhe/examples.desktop', '/home'}
s = os.path.commonprefix(l)

返回的s为’/home’。该函数的返回值有可能是一个非法的路径,因为它是逐个字符比较。

dirname

os.path.dirname(path)函数返回路径的目录。
它与basename函数的返回值分别是split函数的返回值的两个元素。

path1 = '/home/jackeyzhe/PycharmProjects/showMe/com/code001/test.txt'
path2 = '/home/jackeyzhe/PycharmProjects/showMe/com/code001'a1 = os.path.basename(path1)
b1 = os.path.basename(path2)print a1
print b1a2 = os.path.dirname(path1)
b2 = os.path.dirname(path2)print a2
print b2a = os.path.split(path1)
b = os.path.split(path2)print a
print b

结果:

test.txt
code001
/home/jackeyzhe/PycharmProjects/showMe/com/code001
/home/jackeyzhe/PycharmProjects/showMe/com
('/home/jackeyzhe/PycharmProjects/showMe/com/code001', 'test.txt')
('/home/jackeyzhe/PycharmProjects/showMe/com', 'code001')

exists

os.path.exists(path)函数用于验证是否指定路径是否存在。如果返回True,表示存在;否则不存在。在有些平台中,如果路径无权限执行os.stat()函数,即使路径存在,exists函数仍会返回False。

expanduser

os.path.expanduser(path)函数可以将~或~user替换为用户工作路径。

expandvars

os.path.expandvars(path)函数可以替换路径中的环境变量。

getatime

os.path.getatime(path)函数返回路径的最后访问时间。

getmtime

os.path.getmtime(path)函数返回路径的最后修改时间。

getsize

os.path.getsize(path)函数返回指定路径的大小,单位为byte,如果路径不存在或不可访问,则抛出os.error异常。

isabs

os.path.isabs(path)函数用于判断是否是绝对路径,Unix的绝对路径以斜线开头,而Windows的绝对路径以反斜线开头。

isfile

os.path.isfile(path)函数用于判断指定路径是否是文件。

isdir

os.path.isdir(path)函数用于判断指定路径是否是目录。

islink

os.path.islink(path)函数用于判断指定路径是否是符号链接。

normpath

os.path.normpath(path)函数返回标准路径,A//B, A/B/, A/./B 和 A/foo/../B都变成了A/B。

samefile

os.path.samefile(path1, path2)函数用于判断两个路径是否指向同一文件。

walk

os.path.walk(path, visit, arg)函数会逐个访问指定目录下的子目录,但符号链接不会被当做子目录进行访问。

os.pah模块的常用方法就是这些,想要熟悉这些方法,还要花时间进行大量的练习。

Python学习笔记(5):os.path模块相关推荐

  1. Python学习笔记:常用第三方模块(1)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  2. Python学习笔记:常用内建模块5

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  3. Python学习笔记:常用第三方模块3

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  4. Python学习笔记:常用内建模块7XML

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  5. Python学习笔记:常用内建模块2:collections

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  6. 一文看懂Python(四)-----os.path模块篇

    一.前言 今天介绍一下Python中一个常用的模块–os.path模块.之后会很频繁地用到这个模块,故在分享一下! 二.常用方法解释 方法名 方法介绍 basename(path) 去掉目录路径,单独 ...

  7. 【Python】内置os.path模块最常用的一些用法

    os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法. 更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.h ...

  8. Python学习笔记(迭代、模块扩展、GUI 、编码处理等)

    PythonIDLE中的编码处理 http://www.tuicool.com/articles/NbyEBr 原文标题:Python中实际上已经得到了正确的Unicode或某种编码的字符,但是看起来 ...

  9. python学习笔记二

    1 正则 1-1 普通字符 s1 = 'asd25454655js6565askJ\nNKJLasd5165123' # 1 匹配单个大写英文字母 obj = re.compile('[A-Z]') ...

  10. Python学习笔记:常用内建模块6 (urllib)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. AI圈真魔幻!谷歌最新研究表明卷积在NLP预训练上竟优于Transformer?LeCun暧昧表态...
  2. 宝塔面板 windows 2012 mysql 允许远程连接
  3. Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程
  4. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com
  5. ROS入门-2.Linux系统基础操作
  6. 杜克大学用13幅图告诉你人生的真谛,值得深思!
  7. 网络存储学习之网络存储技术的发展现状及趋势
  8. 常用数学建模知识点及方法总结(1)(2021-8-10)
  9. win10系统电脑分辨率异常解决办法
  10. 接口测试平台代码实现16:吐槽功能后台实现+orm初识
  11. 计算机菜单的作用是,菜单
  12. 超七成阅读APP都借百度语音技术促用户增长
  13. 天啦,从Mongo到ClickHouse我到底经历了什么?
  14. c语言人机界面,C语言实现可视化人机界面的有效方法
  15. 3、传输介质——同轴电缆
  16. CentOS8 编译安装tsar nagios + nagios-plugins + nsca
  17. idc服务器维护岗位,IDC运维工程师工作内容
  18. 什么软件测试cpu满载,功耗实测——待机/CPU满载/3DMark_CPUCPU评测-中关村在线
  19. VC实现复制粘贴字符串
  20. 华为云ModelArts文本分类–外卖评论(附详细图解)

热门文章

  1. 计算机网络复习总结3
  2. 计算机更新失败变的很卡,win 8.1 运行慢,更新kb2919355失败频繁重启等问题
  3. 4g能达到多少兆_中国移动4g网络每秒能跑多少M
  4. 一种用于模拟电晕放电的高效半拉格朗日算法(Matlab代码实现)
  5. ggiohokbih
  6. 计算机软件测试实训,软件测试实训报告.doc
  7. Linux中select poll和epoll的区别
  8. 如何向开源项目提交issue以及为什么开源社区不推荐使用 fastjson库
  9. Arduino 和LCD1602显示屏
  10. C#,码海拾贝(11)——拉格朗日(Lagrange)三点式曲面插值(Surface Interpolation)算法C#源程序