Python根据路径获取文件名

Python根据路径获取文件名

Python根据路径获取文件名

在编程过程中,经常需要通过文件的路径来获取文件名。Python提供了多种方法来实现这个功能。本文将详细介绍Python中根据路径获取文件名的几种常用方法,并给出相应的示例代码。

1. 使用os模块的split方法

os模块是Python内置的一个提供了与操作系统相关功能的模块,其中包括了一些处理文件路径的方法。

其中,os.path模块下的split方法可以将路径拆分为目录路径和文件名两部分。具体代码如下所示:

import os

path = '/home/user/sample.txt'
dirname, filename = os.path.split(path)

print('目录路径:', dirname)
print('文件名:', filename)

运行结果:

目录路径: /home/user
文件名: sample.txt

上述代码中,将路径'/home/user/sample.txt'通过os.path.split方法拆分,得到的目录路径为'/home/user',文件名为'sample.txt'

2. 使用os模块的basename方法

os.path模块还提供了basename方法,可以直接获取文件名部分。具体代码如下所示:

import os

path = '/home/user/sample.txt'
filename = os.path.basename(path)

print('文件名:', filename)

运行结果:

文件名: sample.txt

上述代码中,通过os.path.basename方法,直接获取到了文件名'sample.txt'

3. 使用split方法和列表索引

如果只是简单地获取文件名,也可以使用字符串的split方法和列表索引来实现。具体代码如下所示:

path = '/home/user/sample.txt'
filename = path.split('/')[-1]

print('文件名:', filename)

运行结果:

文件名: sample.txt

上述代码中,通过split方法将路径按照'/'进行切分,得到一个列表['home', 'user', 'sample.txt']。然后通过[-1]索引获取最后一个元素,即文件名。

4. 使用re模块的split方法

如果路径中包含多级目录,上述方法可能无法满足需求。可以使用re模块的split方法,使用正则表达式进行切分。具体代码如下所示:

import re

path = '/home/user/folder/sample.txt'
filename = re.split(r'[\\/]', path)[-1]

print('文件名:', filename)

运行结果:

文件名: sample.txt

上述代码中,通过re.split方法和正则表达式'[\\/]'将路径按照斜杠'/'或反斜杠'\'进行切分,得到一个列表['home', 'user', 'folder', 'sample.txt']。然后通过[-1]索引获取最后一个元素,即文件名。

5. 使用pathlib模块的name属性

从Python3.4开始,Python提供了一个更便捷的处理文件路径的模块——pathlib。可以使用pathlib模块的Path类来获取文件名。具体代码如下所示:

from pathlib import Path

path = Path('/home/user/sample.txt')
filename = path.name

print('文件名:', filename)

运行结果:

文件名: sample.txt

上述代码中,通过Path类创建了一个路径对象,然后通过name属性直接获取到了文件名'sample.txt'

综上所述,我们介绍了使用os模块的split方法、basename方法,以及使用split方法和列表索引、re模块的split方法,以及pathlib模块的name属性这几种常用的方法来根据路径获取文件名。具体使用哪种方法可以根据实际情况进行选择,以满足自己的需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程