Python os.path模块的基本操作

import os

1.os.path.abspath(path) 返回path规范化的 绝对路径

path1 = os.path.abspath("./os模块1.py")
print(path1)

# 输出结果: F:\pythonProject\untitled\mywork\os模块\os模块1.py

2.os.path.split(path) 将path分割成目录和文件名二元组返回。

path2 = os.path.split(path1)
print(path2)
# 输出结果: ('F:\\pythonProject\\untitled\\mywork\\os模块', 'os模块1.py')

3.os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素

path3 = os.path.dirname(path1)
print(path3)
# 输出结果:  F:\pythonProject\untitled\mywork\os模块

4.os.path.basename(path) 返回path最后的文件名。即os.path.split(path)的第二个元素

path4 = os.path.basename(path1)
print(path4)
# 输出结果: os模块1.py

5.os.path.commonprefix(list) 返回list中,所有path 共有的最长的路径。

path5 = os.path.commonpath((path1, path3))
print(path5)
# 输出结果: F:\pythonProject\untitled\mywork\os模块

6.os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False

path6 = os.path.exists("./a.txt")
print(path6)
path61 = os.path.exists("./os模块1.py")
print(path61)
# 输出结果: False ,  True

7.os.path.isabs(path) 如果path是绝对路径,返回True

path7 = os.path.isabs("./os模块1.py")
print(path7)
path7 = os.path.isabs(path1)
print(path7)
# 输出结果: False ,  True

8.os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False 文件 .py, .txt

path8 = os.path.isfile("./os模块1.py")
print(path8)
path81 = os.path.isfile("E:\workspace\os模块")
print(path81)
# 输出结果: True, False

9.os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False 目录/文件夹

path9 = os.path.isdir(r"E:\workspace\os模块\os模块1.py")
print(path9)
path91 = os.path.isdir(r"E:\mywork\os模块")
print(path91)
# 输出结果: False, False

10.os.path.join(path1[, path2[, …]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

path10 = os.path.join('E:\\workspace\\os模块', 'os模块1.py')
print(path10)
# 输出结果: E:\workspace\os模块\os模块1.py
path10 = os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')
print(path10)
# 输出结果: c:\csv\test.csv

11. os.path.normcase(path) 在Linux和Mac平台上,该函数会原样返回path,

在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为反斜杠

path11 =os.path.normcase('C:/Windows\\System32\\')
print(path11)
# 输出结果:  c:\windows\system32\

12.os.path.normpath(path) 规范化路径。

path12 = os.path.normpath("c://windows\\System32\\../abc")
print(path12)
# 输出结果: c:\windows\abc
path12 = os.path.normpath("c://windows\\System32\\")
print(path12)
# 输出结果: c:\windows\System32

13.os.path.splitdrive(path) 返回(drivername,fpath)元组

path13 = os.path.splitdrive('E:\workspace\os模块\os模块1.py')
print(path13)
# 输出结果:  ('E:', '\\workspace\\os模块\\os模块1.py')

14.os.path.splitext(path) 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作

path14 = os.path.splitext('E:\workspace\os模块\os模块1.py')
print(path14)
# 输出结果: ('E:\\workspace\\os模块\\os模块1', '.py')

注意这两个的区别

print(os.path.split('E:\workspace\os模块\os模块1.py')) # ('E:\\workspace\\os模块', 'os模块1.py')

15、返回当前工作目录

print(os.getcwd())
# 输出结果: F:\pythonProject\untitled\mywork\os模块

16.os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间。

path16 = os.path.getatime(path1)
print(path16)
# 输出结果:  1540439661.1485267

17.os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间

path17 = os.path.getmtime(path1)
print(path17)
print("*"*17)
# 输出结果: 1540439678.2045376

os.access(path, mode) 的介绍用法

假定 /tmp/foo.txt 文件存在,并有读写权限

"""
语法:
    access()方法语法格式如下:
        os.access(path, mode)

参数:
    path -- 要用来检测是否有访问权限的路径。
    mode -- mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。

    os.F_OK: 包含在access()的mode参数中 , 测试path是否存在。
    os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。
    os.W_OK: 包含在access()的mode参数中 , 测试path是否可写。
    os.X_OK: 包含在access()的mode参数中 , 测试path是否可执行。
"""

ret = os.access("./text.py", os.F_OK)
print("F_OK - 返回值 %s" % ret)

ret = os.access("/tmp/foo.txt", os.R_OK)
print("R_OK - 返回值 %s" % ret)

ret = os.access("/tmp/foo.txt", os.W_OK)
print("W_OK - 返回值 %s" % ret)

ret = os.access("/tmp/foo.txt", os.X_OK)
print("X_OK - 返回值 %s" % ret)

"""
输出结果:
    F_OK - 返回值 True
    R_OK - 返回值 False
    W_OK - 返回值 False
    X_OK - 返回值 False
"""

20、 os.walk方法,主要用来遍历一个目录内各个子目录和子文件

for root, dirs, files in os.walk(".", topdown=False):
    # print(root)
    print(dirs)   # 获取目录下的子目录
    print(files)  # 获取目录下的文件
    # for name in files:
    #     print(os.path.join(root, name))
    # for name in dirs:
    #     print(os.path.join(root, name))

print(os.path.abspath('.'))
print(os.path.abspath(__file__))  # 返回当前文件的绝对路径
print(os.path.dirname(os.path.abspath(__file__)))  # 返回当前文件的父级目录


"""
输出结果:
    F:\pythonProject\untitled\mywork\os模块
    F:\pythonProject\untitled\mywork\os模块\os模块1.py
    F:\pythonProject\untitled\mywork\os模块
"""

注意:os.path.join(path1, path2…pathn) 可能出现的坑

print(os.getcwd())  # F:\pythonProject\untitled\mywork\os模块 返回当前的工作目录

print(os.path.join("C:/user/", "/a.txt"))
# 输出结果: C:/a.txt   
print(os.path.join("C:/user/", "a.txt"))
# 输出结果: C:/user/a.txt     无 \ 开头路径进行拼接

这个模块网上有很多很多,这些大部分都是他们常用的操作和方法,可以了解一下,用得多了就记住了,也没必要可以去记忆。仅供参考


别人博客的链接地址:https://www.cnblogs.com/wuxie1989/p/5623435.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值