Python os.path模块的基本操作

xiaoxiao2025-06-24  9

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


转载请注明原文地址: https://www.6miu.com/read-5032434.html

最新回复(0)