在 Python 中根据名称和扩展名拆分文件名

在 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 在名称和扩展名上拆分文件名

要根据名称和扩展名拆分文件名:

  1. 实例化pathlib.Path()类以创建 Path 对象。
  2. 访问suffixPath 对象上的属性以获取扩展。
  3. 访问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
类用于根据您的操作系统创建一个
一个对象PosixPathWindowsPath

如果您只需要获取没有扩展名的文件名,则可以在对象上使用
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
属性返回路径的逻辑父级