os.path模块主要用于获取文件的属性,这里对该模块中一些常用的函数做些记录。

  • os.abspath(path):获取文件的绝对路径。这里path指的是路径,例如我这里输入“data.csv”
 [In]  os.path.abspath('data.csv')
[Out] 'E:\\kaggle\\Titanic\\data.csv'

  • os.path.basename(path):获取文件名称。该函数默认通过 ‘\’来截取字符串获取文件名,返回最后一个'\'符号后面的内容
 [In]  os.path.basename('test\\123\\data.csv')
[Out] 'data.csv'

  • os.path.commonprefix(list):返回list(包含多个路径)中,path共有的最长路径
[In]   pa=['E:\\kaggle\\a\\1','E:\\kaggle\\b\\1','E:\\kaggle\\a\\2']
os.path.commonprefix(pa)
[Out] 'E:\\kaggle\\'

  • os.apth.dirname:返回文件路径
[In]   os.path.dirname(os.path.abspath('data.csv'))
[Out] 'E:\\kaggle\\Titanic'

  • os.path.exists(path):判断路径是否存在,若存在则返回True,不存在则返回False
[In]   os.path.exists('E:\\kaggle\1')
[Out] False

  • os.path.getatime(path):返回文件最近的访问时间
  • os.path.getmtime(path):返回文件最近的修改时间
  • os.path.getctime(path):返回文件的创建时间
  • os.path.join(path1,path2,,,):拼接路径,不过有几条准则

(1)输入的路径头部不包含'./'、'/'时,   函数会将每个路径间加“\\”拼接起来

[In]   os.path.join('E:\\','kaggle','Titanic')
[Out] 'E:\\kaggle\\Titanic'

(2)当输入的路径中只有一个路径头部包含 ‘/’ 时,函数会去掉该路径前面(从左至右,按路径的输入顺序)所有路径,然后在剩余路径间加 ‘\\’ 将它们拼接起来,不过会保留 ‘\’

[In]   os.path.join('E','/kaggle','Titanic')
[Out] '/kagg:le\\Titanic'

(3)当输入的路径中有多个路径包含 '\' 时,则会从最后一个包含 '\' 的路径开始拼接其后所有的路径,之前的路径全部丢掉

[In]   os.path.join('E','/kaggle','/Titanic','Test.csv')
[Out] '/Titanic\\Test.csv'

(4)当输入的路径中头部包含 './'时,会将该路径之前的路径也进行拼接,不过会保留 './'符号

[In]   os.path.join('E','kaggle','./Titanic','Test.csv')
[Out] 'E\\kaggle\\./Titanic\\Test.csv'

(5) 当输入的路径中同时存在头部包含  '\' 、'./'的情况,优先生效  '\'的作用。

[In]   os.path.join('E','./kaggle','/Titanic','Test.csv')
[Out] '/Titanic\\Test.csv'

(6) 测试过程中发现 ' : '同样存在特殊作用的情况,不过这里就不再说明,应为不常用

这里顺便介绍一下python中join函数的作用,它同样用来连接字符串,达到与os.path.join()同样的作用。例如

[In]   a=['E:','kaggle','Titanic']
'\\'.join(a)
[Out] 'E:\\kaggle\\Titanic'

  • os.path.split(path):将路径拆分为目录名(dirname)和文件名(filename)
[In]   os.path.split('E:\\kaggle\\Titanic\\test.csv')
[Out] ('E:\\kaggle\\Titanic', 'test.csv')

最新文章

  1. AlloyTeam2015前端大会都说了啥
  2. centos7的网络设置
  3. android贪吃蛇(超级简陋版)
  4. Goldbach's Conjecture
  5. Mysql5.0以上 手工注入
  6. NDK(7)NDK debugging without root access
  7. HDU 1496 Train Problem I 火车问题1(桟,水)
  8. How to detect and avoid memory and resources leaks in .NET applications
  9. lua语法 - 基础篇
  10. Android各种屏幕分辨率(VGA、HVGA、QVGA、WQVGA、WVGA、FWVGA) 具体解释
  11. iOS 属性之assign、copy、retain
  12. C# winForm 窗口跳转后关闭上一个窗口的方法
  13. 题解:LOJ540游戏
  14. 使用第三方组件(django-redis)创建连接池
  15. MVC| NuGet安装相关工具包
  16. 【转】CPU上下文切换的次数和时间(context switch)
  17. JPA-style positional param was not an integral ordinal
  18. react-navigation使用技巧
  19. [ 原创 ]Centos 7.0下安装 Tomcat8.5.15
  20. BTA 常问的 Java基础40道常见面试题及详细答案

热门文章

  1. MeteoInfoLab脚本示例:TRMM 2A12 HDF数据
  2. day64 Pyhton 框架Django 07
  3. day39 Pyhton 并发编程02 后
  4. npoi 设置单元格格式
  5. linux 压缩 tar命令
  6. Kubernetes 使用 ceph-csi 消费 RBD 作为持久化存储
  7. 在Linux上成功启动Jenkins却无法访问的问题
  8. libhiredis.so.0.13: cannot open shared object file: No such file or directory in Unknown on line
  9. LinkBlockedQueue的c++实现
  10. DLL转存为IL文件及修改后重新生成DLL文件