您的位置:

用Python的os.path.basename函数获取文件名

一、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函数获取路径中的文件夹名称和文件名称。