在 Python 中获取文件扩展名
本教程将介绍如何在 Python 中从文件名中获取文件扩展名。
在 Python 中使用 os.path
模块从文件中提取扩展名
Python 的模块 os.path
预制了有用的实用函数来操作操作系统的文件路径,包括打开、保存和更新,以及从文件路径中获取信息。
我们将使用这个模块来获取 Python 中的文件扩展名。
os.path
有一个函数 splitext()
,用来分割给定文件路径的根和扩展名。该函数返回一个包含根字符串和扩展字符串的元组。
让我们提供一个带有 docx
扩展名的文件路径示例。
/Users/user/Documents/sampledoc.docx
预期的输出应该是扩展名 .docx
。
声明两个独立的变量 extension
和 root
来捕获 splitext()
的结果。
import os
path = "/Users/user/Documents/sampledoc.docx"
root, extension = os.path.splitext(path)
print("Root:", root)
print("extension:", extension)
输出:
Root: /Users/user/Documents/sampledoc
Extension: .docx
扩展名现在已经从根文件路径成功返回。
在 Python 中使用 pathlib
模块从文件中提取扩展名
pathlib
是一个 Python 模块,它包含代表文件路径的类,并为这些类实现实用函数和常量。
pathlib.Path()
接受一个路径字符串作为参数并返回一个新的 Path
对象。
pathlib.Path
对象有属性 suffix
,返回文件扩展信息。
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", path.suffix)
除了根目录外,我们还可以通过简单调用 Path
对象内的属性 parent
和 name
来获取给定文件路径的父文件路径和实际文件名。
输出:
Parent: /Users/user/Documents
Filename: sampledoc.docx
Extension: .docx
如果文件扩展名是 .tar.gz
或 .tar.bz2
呢?
pathlib
还提供了一个属性,用于处理有多个后缀的文件。Path
对象中的属性 suffixes
是一个包含所有给定文件后缀的列表。如果我们使用上面的例子并打印出 suffixes
属性。
import pathlib
path = pathlib.Path("/Users/user/Documents/sampledoc.docx")
print("Suffix(es):", path.suffixes)
输出:
Suffix(es): ['.docx']
所以即使只有一个后缀,输出的结果也会是一个列表。
现在试试用 .tar.gz
扩展名的例子。要将列表转换为单字符串,可以在一个空字符串上使用 join()
函数,并接受 suffixes
属性作为参数。
import pathlib
path = pathlib.Path("/Users/user/Documents/app_sample.tar.gz")
print("Parent:", path.parent)
print("Filename:", path.name)
print("Extension:", "".join(path.suffixes))
输出:
Parent: /Users/user/Documents
Filename: app_sample.tar.gz
Extension: .tar.gz
现在显示的是实际的扩展名,而不是一个列表。
总之,os
和 pathlib
这两个模块提供了在 Python 中从文件路径中获取文件扩展名的方便方法。
os
模块有一个函数 splitext
,用于将根和文件名从文件扩展名中分离出来。pathlib
创建一个 Path
对象,并简单地将扩展名存储在 suffix
属性中。
如果你预计一个文件中有多个扩展名,最好使用 pathlib
,因为它使用 suffixes
属性为多个扩展名提供了轻松的支持。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串