从任何操作系统/路径格式的路径中提取文件名

在Python中,我们可以使用内置函数和库轻松地从整个文件路径中提取文件名。您可能想知道为什么需要从 Python 中文件的绝对路径中提取文件名。答案是不同的计算机系统对不同的文件系统使用不同的分隔符。在当今流行的自动化过程中,轻松地分隔文件名至关重要。

从文件路径中提取文件名以实现与平台无关的解决方案

我们需要从文件路径中提取名称以获得上述问题的独立于平台的解决方案。有很多方法可以做到这一点,例如:

我们来看看如何一一实现上述所有方法。

在Python中,您可以使用不同的方法从文件路径中提取文件名,例如rsplit()方法、OS模块中的basename()函数和Path模块。这些方法与平台无关,可用于在自动化过程中处理跨各种计算机系统的不同文件系统和分隔符。每种方法都有其语法,您可以根据需要选择一种。

方法一:使用rsplit()方法

rsplit() 方法与 split() 方法类似,但它从右侧而不是左侧开始分隔单词或字符。它返回字符串中由分隔符分隔的单词或字符的列表。该函数的语法是:

our_string.rsplit(separator,maxsplit)

分隔符是分隔符,如果指定,可以是任何字符。该参数的默认值为空格。

maxsplit 参数定义应该完成的分割数。它是一个可选参数。它的默认值分配为 -1,这会拆分所有单独的项目。让我们看一下相同的代码。您无需安装任何额外的东西即可使用此功能。

#code for extracting file name
 
#taking input for file path
file_name=input("Enter the absolute path of your file=")
#spliting the entire file path
filename_compo=file_name.split('/')
#using rsplit() to separate file name
file_name_extracted = filename_compo[-1].rsplit('.', 1)
#displaying only the file name
print("The file name is=",file_name_extracted[0])

输出将是:

Enter the absolute path of your file=C:/Downloads/askpython_files.txt
The file name is= askpython_files
使用 rsplit() 方法

建议:Python 中的 __file__ 变量是什么?

方法 2:使用 OS 模块中的 basename() 函数

Python 中的操作系统 (OS) 模块包含各种可以在操作系统和用户之间建立连接的函数。我们将使用该模块中的 basename() 函数,它可以提取文件的基本名称。无需安装或下载任何额外的库即可使用此功能,因为它位于 Python 的默认实用程序模块下。它的语法是:

os.path.basename(path_of_the_file)

用于提取文件名的代码是:

#code for extracting file name
 
#importing required modules
import os
#taking input for file path
file_abpath=input("Enter the absolute path of your file=")
#using the basename function from the os module
file_nameextracted = os.path.basename(file_abpath)
#returns the tuple containing the file
file_final = os.path.splitext(file_nameextracted)
#only the first index
print("The filename is=", file_final[0])

上述代码的输出是:

Enter the absolute path of your file=C:/users/shreya/downloads/myfolder.txt
The filename is= myfolder

方法三:使用Python中的Path模块

这是另一种可用于从计算机中文件的绝对路径获取文件名的方法。Python 中的 Path 模块允许我们用适合不同操作系统的语义来表示类实例,使其成为处理文件路径的通用解决方案。

通过以下方式,我们可以使用path模块从python中的路径中提取文件名。

#code for extracting file name
 
#importing required modules
from pathlib import Path
  
file_path = input("enter absolute file path=")
# the name attribute returns full name of the file
print("The name of the file is=", Path(file_path).name)

输出将是:

enter absolute file path=C:/downloads/myfolder/firstprogram.py
The name of the file is= firstprogram.py

请查看:使用 Python 将 PDF 转换为 TXT 文件。

结论:

在本教程中,我们探索了在 Python 中从绝对文件路径提取文件名的各种方法。由于有多个可用库,您可以选择最适合您需求的方法。当您继续处理文件时,如何将这些技术集成到您的项目中以实现无缝文件处理和自动化?