在 Python 中根据名称和扩展名拆分文件名
Split filename on name and extension in Python
使用该os.path.splitext()
方法在名称和扩展名上拆分文件名,例如filename, extension = os.path.splitext(file_path)
. 该
os.path.splitext()
方法返回一个元组,其中包含文件名作为第一个元素,扩展名作为第二个元素。
主程序
import os file_path = '/home/bobbyhadz/Desktop/file.txt' filename, extension = os.path.splitext(file_path) print(filename) # 👉️ '/home/bobbyhadz/Desktop/file' print(extension) # 👉️ '.txt'
我们使用该os.path.splitext
方法在名称和扩展名上拆分文件名。
os.path.splitext方法将
路径拆分为包含根和扩展的元组。
主程序
import os file_path = '/home/bobbyhadz/Desktop/file.txt' # 👇️ ('/home/bobbyhadz/Desktop/file', '.txt') print(os.path.splitext(file_path)) filename, extension = os.path.splitext(file_path) print(filename) # 👉️ '/home/bobbyhadz/Desktop/file' print(extension) # 👉️ '.txt'
您可以使用解包将文件名和扩展名分配给同一行上的变量。
如果指定的路径不包含扩展名,则元组中的第二个元素为空字符串。
主程序
import os file_path = '/home/bobbyhadz/Desktop/file' # 👇️ ('/home/bobbyhadz/Desktop/file', '') print(os.path.splitext(file_path)) filename, extension = os.path.splitext(file_path) print(filename) # 👉️ '/home/bobbyhadz/Desktop/file' print(extension) # 👉️ ''
如果路径包含多个句点,则忽略之前的句点。
主程序
import os file_path = '/home/bobby.hadz/Desktop/file.txt' # 👇️ ('/home/bobby.hadz/Desktop/file', '.txt') print(os.path.splitext(file_path)) filename, extension = os.path.splitext(file_path) print(filename) # 👉️ '/home/bobby.hadz/Desktop/file' print(extension) # 👉️ '.txt'
或者,您可以使用pathlib.Path()
该类。
使用 pathlib.Path 在名称和扩展名上拆分文件名
要根据名称和扩展名拆分文件名:
- 实例化
pathlib.Path()
类以创建 Path 对象。 - 访问
suffix
Path 对象上的属性以获取扩展。 - 访问
stem
对象的属性以获取文件名。
主程序
import pathlib file_path = '/home/bobbyhadz/Desktop/file.txt' fpath = pathlib.Path(file_path) print(fpath.suffix) # 👉️ '.txt' print(fpath.suffixes) # 👉️ ['.txt'] print(fpath.stem) # 👉️ 'file' print(fpath.parent) # 👉️ '/home/bobbyhadz/Desktop'
pathlib.Path
类用于根据您的操作系统创建一个或一个对象PosixPath
。WindowsPath
如果您只需要获取没有扩展名的文件名,则可以在对象上使用
stem
属性。Path
如果文件名包含文件扩展名,则后缀属性返回文件扩展名
。
suffixes属性返回路径文件扩展名的
列表。
主程序
import pathlib file_path = '/home/bobbyhadz/Desktop/file.tar.gz' fpath = pathlib.Path(file_path) print(fpath.suffix) # 👉️ '.gz' print(fpath.suffixes) # 👉️ ['.tar', '.gz'] print(fpath.stem) # 👉️ 'file.tar' print(fpath.parent) # 👉️ '/home/bobbyhadz/Desktop'
parent
属性返回路径的逻辑父级。