这个专栏记录我学习/科研过程中遇到的一些小问题以及解决方案,一些问题可能比较蠢请见谅。自用,仅供参考。
------------------------------------------------------------------------------------
Python中的os.path模块详解(包括一些常用的路径操作相关操作)
os.path
是Python标准库中用于处理和操作文件路径的模块。它提供了一个平台无关的接口,用于常见的文件和目录路径操作,如路径拼接、查询文件类型、获取文件信息等。os.path模块可以在不同操作系统(如 Windows、Linux、macOS)上兼容与文件路径操作相关的代码,各个操作系统上的差异非常小(例如路径分隔符的不同等)。
以下是os.path
一些常用函数的总结,包括使用场景与案例(注意,所有的案例均在Linux操作系统上)。除此之外,一些与路径操作相关的函数(例如os.walk等)也同样纳入总结:
1. 路径拼接与分割
☆1.1 os.path.join(*paths):路径拼接
功能:将多个路径组件合成一个路径。
import os
path = os.path.join('folder', 'subfolder', 'file.txt')
print(path) # 输出 'folder/subfolder/file.txt'
☆1.2 os.path.split(path):路径分割
功能:将路径分割成目录部分和文件名部分(注意,并不是将路径按“/”进行分割!)。
head, tail = os.path.split('/folder/subfolder/file.txt')
print("目录:", head) # 输出 '/folder/subfolder'
print("文件名:", tail) # 输出 'file.txt'
☆1.3 os.path.splitext(path):路径与扩展名分割
功能:分割文件路径为根路径和扩展名。
root, ext = os.path.splitext('file.txt')
print("文件名:", root) # 输出 'file'
print("扩展名:", ext) # 输出 '.txt'
☆1.4 path.strip(‘/’).split(‘/’):以"/"分割路径
功能:以“/”来分割路径,比如将’/folder/subfolder/file.txt’分割为[‘folder’、‘subfolder’、‘file.txt’]。
import os
path = "/data1/abc/123/assets/"
parts = path.strip('/').split('/')
print(parts) # 输出['data1', 'abc', '123', 'assets']
注意,strip(‘/’)用于去除路径首尾的 /,因为 split() 方法按每个 / 进行分割,而如果路径以 / 开头,分割出来的第一个元素会是空字符串。所以通过 strip(‘/’) 去除前后的 / 以避免这种情况。另外,split() 方法的输出为列表