Python 程序:如何从文件路径中获取文件名

在这篇文章中,我们将一起探索如何使用 Python 编程语言 从给定的文件路径中提取文件名。在进行自动化操作时,我们经常会遇到需要从路径中分离出文件名的情况。

在开始之前,最好对以下内容有所了解:

方法 1:使用 Python OS 模块

示例 1:使用 split() 从路径中获取不带扩展名的文件名

Python 的 split() 函数会使用定义的分隔符将给定的文本拆分为一个字符串列表,并返回由提供分隔符划分后的字符串列表。

Python

import os
path = ‘D:\home\Riot Games\VALORANT\live\VALORANT.exe‘
print(os.path.basename(path).split(‘/‘)[-1])

INLINECODE307207c0os.path.basename()INLINECODE331cba0apath.basename() 函数接受一个路径参数,并返回该路径的基本名称。

Python

CODEBLOCK_847a0c86

输出:

test.txt

示例 3:使用 os.path.splitext 从文件路径中获取文件名

上述方法虽然可以得到文件及其扩展名,但如果我们只需要不带扩展名的文件名,或者只需要扩展名呢?这时,os 模块中的 splitext 函数 就派上用场了。该方法会返回一个包含文件名和文本的元组,我们可以通过索引来访问它们。

示例:

Python

import os

file_path = ‘C:/Users/test.txt‘

file_name = os.path.basename(file_path)
file = os.path.splitext(file_name)

print(file)  # 返回字符串元组

print(file[0] + file[1])

INLINECODE7f08e196nameINLINECODE1e34acff

输出:

test
test.txt

方法 3:使用正则表达式从文件路径中获取文件名

我们可以使用 正则表达式 来匹配特定模式的文件名。

**模式 - **[\w]+?(?=\.)

这个模式分为 3 个部分:

  • [\w] 匹配集合中的单词字符
  • +? 仅当字符串在 ? 关键字前出现一次时才匹配
  • (?=) 匹配除换行符外的所有字符,并确保在指定位置停止。

!image

示例:

Python

import re

file_path = ‘C:/Users/test.txt‘
pattern = ‘[\w-]+?(?=\.)‘

# 搜索模式
a = re.search(pattern, file_path)

# 打印匹配结果
print(a.group())

INLINECODEb7e7350csplit()INLINECODE734c6d6crsplit()` 方法将最后一个组件(应该是文件名和扩展名)拆分为包含文件名和扩展名的列表。之后,我们可以通过索引从该列表中提取文件名。

下面是如何实现这一点的示例:

Python

def get_file_name(file_path):
    file_path_components = file_path.split(‘/‘)
    file_name_and_extension = file_path_components[-1].rsplit(‘.‘, 1)
    return file_name_and_extension[0]
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43957.html
点赞
0.00 平均评分 (0% 分数) - 0