python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python获取后缀名或文件名

Python实用技巧之如何获取后缀名(扩展名)或文件名

作者:高斯小哥

这篇文章主要介绍了在Python中获取文件名和扩展名的几种方法,包括使用os.path.basename()函数获取文件名,以及使用os.path.splitext()函数获取文件名和扩展名,文中通过代码介绍的非常详细,需要的朋友可以参考下

一、引言 

在日常编程中,我们经常需要处理文件,包括读取、写入、移动、复制等操作。而在这些操作中,获取文件的扩展名(后缀名)或文件名是一个常见的需求。Python提供了多种方法来实现这一需求,本文将详细介绍其中的几种方法,并通过实战案例来加深理解。

二、获取文件名 

在Python中,获取文件名通常使用os.path.basename()函数。这个函数接受一个文件路径作为参数,并返回该文件的基本名称,即最后一个路径分隔符后面的部分。

下面是一个简单的示例:

import os

# 定义一个文件路径
file_path = "/home/user/documents/example.txt"

# 使用os.path.basename()获取文件名
file_name = os.path.basename(file_path)

print(file_name)  # 输出: example.txt

💡注意os.path.basename()函数仅返回文件名,不包括路径或扩展名。

三、获取文件扩展名 

在Python中,获取文件扩展名通常使用os.path.splitext()函数。这个函数接受一个文件路径作为参数,并返回一个元组,其中第一个元素是文件的基本名称(不包括扩展名),第二个元素是文件的扩展名(包括点号)

下面是一个简单的示例:

import os

# 定义一个文件路径
file_path = "/home/user/documents/example.txt"

# 使用os.path.splitext()获取文件名和扩展名
file_name, file_extension = os.path.splitext(file_path)

print("文件名:", file_name)  # 输出: 文件名: /home/user/documents/example
print("扩展名:", file_extension)  # 输出: 扩展名: .txt

💡注意os.path.splitext()函数返回的扩展名包括点号(.)。如果你想要去掉点号,可以通过字符串切片操作来实现:

file_extension = file_extension[1:]  # 去掉点号
print("去掉点号的扩展名:", file_extension)  # 输出: 去掉点号的扩展名: txt

四、实战案例

现在,我们来看一个实战案例,演示如何在实际编程中运用获取文件名和扩展名的知识。假设我们有一个文件夹,里面包含了多个文件,我们需要遍历这个文件夹,打印出每个文件的文件名和扩展名。

import os

# 定义一个文件夹路径
folder_path = "/home/user/documents"

# 遍历文件夹中的文件
for file_name in os.listdir(folder_path):
    # 拼接文件的完整路径
    file_path = os.path.join(folder_path, file_name)
    
    # 判断是否为文件(排除文件夹)
    if os.path.isfile(file_path):
        # 使用os.path.splitext()获取文件名和扩展名
        file_base_name, file_ext = os.path.splitext(file_name)
        
        # 打印文件名和扩展名
        print(f"文件名: {file_base_name}, 扩展名: {file_ext[1:]}")

这个示例代码会遍历指定文件夹中的所有文件,并打印出每个文件的文件名和扩展名。

💡注意: 我们在打印扩展名时使用了字符串切片操作来去掉点号。

五、总结

本文介绍了在Python中获取文件名和扩展名的几种方法,包括使用os.path.basename()函数获取文件名,以及使用os.path.splitext()函数获取文件名和扩展名。通过实战案例的演示,我们了解了如何在实际编程中运用这些知识。希望本文能够帮助你更好地处理文件相关的编程任务!

附:python获取指定文件夹下所有指定后缀文件列表

import os
# 获取指定路径下所有指定后缀的文件
# dir 指定路径
# ext 指定后缀,链表&不需要带点 或者不指定。例子:['xml', 'java']
def GetFileFromThisRootDirV2(target_dir, target_suffix="pxy"):
    find_res = []
    target_suffix_dot = "." + target_suffix
    walk_generator = os.walk(target_dir)
    for root_path, dirs, files in walk_generator:
        if len(files) < 1:
            continue
        for file in files:
            file_name, suffix_name = os.path.splitext(file)
            if suffix_name == target_suffix_dot:
                find_res.append(os.path.join(root_path, file))
    return find_res
    
LogList = GetFileFromThisRootDirV2("D:/temp", "log")

到此这篇关于Python实用技巧之如何获取后缀名(扩展名)或文件名的文章就介绍到这了,更多相关Python获取后缀名或文件名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文