一、os.path.basename函数简介
在Python中,我们可以使用os.path.basename函数获取文件路径中的文件名部分,该函数用于获取文件的基本名称(字符串中最后一个反斜杠以后的部分),并将其作为字符串返回。如果路径以反斜杠结尾,则返回前一个部分。该函数可以应用于多种操作系统,如Windows,Linux,Unix等。使用该函数时,需要导入os模块。
import os
二、os.path.basename函数语法
os.path.basename函数的语法如下:
os.path.basename(path)
其中,参数path为要获取文件名的路径字符串,该路径可以是具体的文件路径、文件夹路径或其他路径的字符串表示形式。函数的返回值是一个字符串,表示path中的文件名。
三、对文件路径字符串的处理
在使用os.path.basename函数之前,需要对文件路径字符串进行处理,确保其符合操作系统的格式。
1、Windows系统路径字符串处理
在Windows系统中,文件路径字符串通常以'\'字符分隔路径和文件夹名称。但是,在Python中,'\'字符具有转义意义,因此建议使用原始字符串,使用'r'前缀,例如:
path = r'C:\Users\Administrator\Desktop\test.txt'
如果没有使用r前缀,则需要使用两个'\'字符,例如:
path ='C:\\Users\\Administrator\\Desktop\\test.txt'
2、Linux和Unix系统路径字符串处理
在Linux和Unix系统中,文件路径字符串通常以'/'字符分隔路径和文件夹名称。不需要进行转义处理。例如:
path = '/home/user/test.txt'
四、os.path.basename函数使用示例
1、获取文件名
下面是一个简单的示例,展示如何使用os.path.basename函数获取指定文件的名称。
import os # 获取文件名方法一 path = r'C:\Users\Administrator\Desktop\test.txt' filename = os.path.basename(path) print(filename) # 获取文件名方法二 filename = path.split('\\')[-1] print(filename)
输出结果:
test.txt test.txt
在上面的示例中,我们使用了两种方法获取文件名。第一种方法是使用os.path.basename函数,它非常简单且易于使用。第二种方法是使用字符串的split方法,它将路径字符串切割成一个列表,我们可以使用列表索引[-1]来获取文件名。
2、获取文件夹名称
有时,我们不仅需要获取文件名,还需要获取文件所在的文件夹名称。可以使用os.path.dirname函数获取文件所在文件夹的全路径。
import os path = r'C:\Users\Administrator\Desktop\test.txt' # 获取文件夹名方法一 dir_name = os.path.dirname(path) print(dir_name) # 获取文件夹名方法二 dir_name = path.rsplit('\\', 1)[0] print(dir_name)
输出结果:
C:\Users\Administrator\Desktop C:\Users\Administrator\Desktop
在上面的示例中,我们使用了两种方法获取文件夹名。第一种方法是使用os.path.dirname函数,它非常简单且易于使用。第二种方法是使用字符串的rsplit方法,它将路径字符串从最后一个反斜杠处分割成两部分,使用[-1]索引排除文件名部分,[0]索引获得文件夹名部分。
3、获取多级文件夹名称
对于多级文件夹的情况,我们可以使用os.path.split函数获取路径中的文件夹名称和文件名称。该函数返回一个元组,包含路径中的文件夹名称和文件名称。例如:
import os path = r'C:\Users\Administrator\Desktop\test\file.txt' # 获取文件夹名和文件名 dir_name, filename = os.path.split(path) print(dir_name) print(filename)
输出结果:
C:\Users\Administrator\Desktop\test file.txt
四、总结
os.path.basename函数是Python中常用的获取文件名的函数之一,使用起来非常简单,可以应用于多种操作系统,如Windows,Linux,Unix等。在使用该函数前需要对路径字符串进行处理以符合操作系统的格式,可以使用原始字符串以避免将反斜杠转义。 os.path.basename函数还可以与os.path.dirname一起使用,使我们能够方便地获取文件的所在文件夹名称。对于多级文件夹的路径,可以使用os.path.split函数获取路径中的文件夹名称和文件名称。