os.path.splitext( )函数与os.path.basename( )函数的用法

os.path.basename( )函数

os.path.basename()函数是Python中的一个内置函数,用于获取路径中的文件名部分

语法如下:

os.path.basename(path)

参数 path 是一个字符串,表示一个文件或目录的路径

os.path.basename()函数会返回路径中的最后一部分,即文件名或目录名

例如:

import os

path = '/path/to/file.txt'
filename = os.path.basename(path)
print(filename)  # 输出:file.txt

在上面的示例中,os.path.basename()函数获取了路径/path/to/file.txt中的文件名部分file.txt,并将其赋值给变量filename,然后,将文件名打印出来

注意:os.path.basename()函数只返回路径中的最后一部分,不包含父目录, 如果路径是以斜杠(/)结尾,则返回空字符串

os.path.splitext( )函数

os.path.splitext()函数是Python中的一个内置函数,用于将路径拆分为基本路径和文件扩展名部分

语法如下:

os.path.splitext(path)

参数path是一个字符串,表示一个文件的路径

os.path.splitext()函数会返回一个包含两个元素的元组,第一个元素是基本路径,即文件路径去掉扩展名部分,第二个元素是文件的扩展名(包括点号)

例1:

import os

path = '/path/to/file.txt'
base_path, ext = os.path.splitext(path)
print(base_path)  # 输出:/path/to/file
print(ext)  # 输出:.txt

在上面的示例中,os.path.splitext()函数将路径/path/to/file.txt拆分为  基本路径/path/to/file和 扩展名.txt,并分别赋值给变量 base_pathext, 然后,将基本路径和扩展名打印出来

注意os.path.splitext()函数只适用于文件路径,对于目录路径或没有扩展名的路径,将返回原始路径作为基本路径,扩展名为空字符串

例2:

import os

path = '/path/to/directory/'
base_path, ext = os.path.splitext(path)
print(base_path)  # 输出:/path/to/directory/
print(ext)  # 输出:(空字符串)

在此示例中,路径/path/to/directory/以斜杠(/)结尾,因此没有扩展名,os.path.splitext() 函数将 返回原始路径/path/to/directory/作为基本路径,扩展名为空字符串

例3:

image_path = "./image/10.tif"  # image_path 是一个文件路径
img_name = os.path.basename(image_path) 
file_name = os.path.splitext(img_name)[0] + ".png"

此处,image_path 是文件路径,通过调用 os.path.basename ( ) 函数可以得到该路径中的文件名10.tif,调用 os.path.splitext( )函数 将会得到一个包含两个元素的元组,其中 os.path.splitext (img _name)[0] 表示该函数返回的第一个元素:此处是10(基本路径),第二个元素:此处是.tif (扩展名)(包括点号), 所以file_name的值就是 10.png

综上所述,就是函数 os.path.splitext( )与 函数 os.path.basename( )的用法了!

如果你觉得有用,麻烦给个关注给个赞吧,谢谢!

### Python `os.path.splitext` 和 `os.path.split` 的区别使用场景 #### 功能差异 `os.path.split()` 函数用于将路径拆分为目录部分和文件名部分。对于给定的路径 `/home/ubuntu/python/example.py`,该函数会将其分解为两个元素组成的元组:`('/home/ubuntu/python', 'example.py')`[^1]。 相比之下,`os.path.splitext()` 则专注于分离文件名及其扩展名。例如,当处理路径 `/home/user/documents/report.docx` 时,此函数能够提取出文件名为 `report` 并单独返回扩展名 `.docx`[^3]。 #### 返回值结构 - **`os.path.split(path)`**: 将输入路径分割成 `(head, tail)` 形式的元组,其中 `head` 是除了最后一级之外的所有级别构成的路径字符串;而 `tail` 即为最后一级名称(通常是一个文件或子目录的名字)。这适用于需要区分整个路径中除开最终节点外其他部分的情况。 - **`os.path.splitext(path)`**: 对于指定路径而言,它会产生一对结果——`(root, ext)`,这里 `root` 表示去掉扩展名后的基础文件名或者不带任何后缀的最后一层目录名;`ext` 则代表了从最后一个点号开始直到结束的部分作为文件类型的标志[^2]。 #### 实际应用场景 - 当开发人员希望解析并操作完整的文件系统路径时,比如遍历某个特定位置下的所有项目或是构建新的绝对地址链接,则应优先考虑采用 `os.path.split()` 方法来获取清晰明了的结果集。 - 若目标在于识别不同种类的数据对象(如图片、文档等),通过检查它们各自的格式标签来进行分类管理的话,那么利用 `os.path.splitext()` 来快速取得每项资源对应的拓展信息无疑是最合适不过的选择了。 ```python import os file_path = "/home/user/documents/report.docx" # 使用 os.path.split() directory, filename = os.path.split(file_path) print(f"Directory: {directory}, Filename: {filename}") # 使用 os.path.splitext() name_without_ext, extension = os.path.splitext(os.path.basename(file_path)) print(f"Name without extension: {name_without_ext}, Extension: {extension}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值