Python获取文件名
在进行日常程序开发过程中,获取文件名是一个普遍的需求。本篇文章将演示如何用Python获取文件名,以及获取文件路径和拓展名。
方法一:使用os模块
Python标准库中的os模块提供了获取文件名和路径的方法。其中,os.path是用于处理文件路径的模块。
import os
path = '/home/user/documents/file.txt'
# os.path.basename()获取文件名
filename = os.path.basename(path)
print(filename) # 输出 "file.txt"
# os.path.dirname()获取文件路径
directory = os.path.dirname(path)
print(directory) # 输出 "/home/user/documents"
# os.path.splitext()获取文件名和拓展名
filename_without_ext, file_extension = os.path.splitext(filename)
print(filename_without_ext) # 输出 "file"
print(file_extension) # 输出 ".txt"
方法二:使用Pathlib模块
Pathlib是Python3.4以上版本中自带的模块,用于处理文件路径。它提供了易于使用的面向对象的接口,可以轻松获取文件名,路径和拓展名。
from pathlib import Path
path = Path('/home/user/documents/file.txt')
# Path.name获取文件名
filename = path.name
print(filename) # 输出 "file.txt"
# Path.parent获取文件路径
directory = path.parent
print(directory) # 输出 "/home/user/documents"
# Path.suffix获取拓展名
file_extension = path.suffix
print(file_extension) # 输出 ".txt"
# Path.stem获取文件名不带拓展名
filename_without_ext = path.stem
print(filename_without_ext) # 输出 "file"
使用正则表达式获取文件名
如果文件名不在文件路径的末尾,可以使用正则表达式来提取文件名。
import re
path = '/home/user/documents/file.txt'
# 使用正则表达式获取文件名
filename = re.findall(r'/([^/]+)\.txt', path)[0]
print(filename) # 输出 "file"
结论
以上是三种获取文件名的方法,使用os模块和Pathlib模块可以更加简洁方便地获取文件名、路径和拓展名,而使用正则表达式可以灵活处理较为复杂的文件路径。在编写Python程序时,可以根据实际情况选择最合适的方法。