Python读取文件名
一、介绍
在编程中,经常会遇到需要读取文件名的情况。Python作为一种适用于各种领域的高级编程语言,提供了各种方法和函数来处理文件操作。本文将详细介绍Python中如何读取文件名的多种方法,并给出相应的代码示例。
二、使用os模块的方法
Python提供了os
模块来处理文件和目录操作。在使用os
模块之前,需要先导入该模块:
import os
1. 获取当前工作目录
使用os.getcwd()
函数可以获取当前工作目录的路径:
import os
current_dir = os.getcwd()
print("当前工作目录:", current_dir)
运行结果:
当前工作目录: C:\Users\Username
2. 获取目录下所有文件名
使用os.listdir()
函数可以获取指定目录下所有文件和文件夹的名称,并存储在一个列表中:
import os
dir_path = "C:/path/to/directory"
file_list = os.listdir(dir_path)
print("目录下的文件名列表:", file_list)
运行结果:
目录下的文件名列表: ['file1.txt', 'file2.py', 'subdirectory']
3. 判断是否为文件
使用os.path.isfile()
函数可以判断给定的路径是否为一个文件:
import os
file_path = "C:/path/to/file.txt"
if os.path.isfile(file_path):
print("给定路径是一个文件")
else:
print("给定路径不是一个文件")
运行结果:
给定路径是一个文件
4. 判断是否为文件夹
使用os.path.isdir()
函数可以判断给定的路径是否为一个文件夹:
import os
dir_path = "C:/path/to/directory"
if os.path.isdir(dir_path):
print("给定路径是一个文件夹")
else:
print("给定路径不是一个文件夹")
运行结果:
给定路径是一个文件夹
5. 获取文件名和扩展名
使用os.path.splitext()
函数可以将文件名与扩展名分开,并返回一个元组:
import os
file_path = "C:/path/to/file.txt"
file_name, file_extension = os.path.splitext(file_path)
print("文件名:", file_name)
print("扩展名:", file_extension)
运行结果:
文件名: file
扩展名: .txt
6. 获取文件夹路径和文件名
使用os.path.split()
函数可以将文件夹路径和文件名分开,并返回一个元组:
import os
file_path = "C:/path/to/file.txt"
dir_path, file_name = os.path.split(file_path)
print("文件夹路径:", dir_path)
print("文件名:", file_name)
运行结果:
文件夹路径: C:/path/to
文件名: file.txt
三、使用Path对象的方法
Python 3.4之后,还引入了pathlib
模块,提供了Path
对象来处理路径操作。使用Path
对象可以更加方便地读取文件名。
1. 获取文件名和扩展名
Path
对象提供了.stem
和.suffix
属性分别获取文件名和扩展名:
from pathlib import Path
file_path = Path("C:/path/to/file.txt")
file_name = file_path.stem
file_extension = file_path.suffix
print("文件名:", file_name)
print("扩展名:", file_extension)
运行结果:
文件名: file
扩展名: .txt
2. 获取文件夹路径和文件名
Path
对象提供了.parent
属性获取文件夹路径,.name
属性获取文件名:
from pathlib import Path
file_path = Path("C:/path/to/file.txt")
dir_path = file_path.parent
file_name = file_path.name
print("文件夹路径:", dir_path)
print("文件名:", file_name)
运行结果:
文件夹路径: C:/path/to
文件名: file.txt
四、使用glob模块的方法
glob
模块可以用来查找符合指定规则的文件路径名。
1. 查找文件名
使用glob.glob()
函数可以查找符合指定规则的文件名,并返回一个包含匹配的文件路径的列表:
import glob
file_list = glob.glob("C:/path/to/files/*.txt")
print("查找到的文件名列表:", file_list)
运行结果:
查找到的文件名列表: ['C:/path/to/files/file1.txt', 'C:/path/to/files/file2.txt']
2. 查找文件夹下的所有文件
使用glob.glob()
函数可以查找指定目录下的所有文件,并返回一个包含所有文件路径的列表:
import glob
file_list = glob.glob("C:/path/to/directory/**", recursive=True)
print("目录下的所有文件列表:", file_list)
运行结果:
目录下的所有文件列表: ['C:/path/to/directory/file1.txt', 'C:/path/to/directory/file2.txt', 'C:/path/to/directory/subdirectory/file3.txt']
五、使用fnmatch模块的方法
fnmatch
模块可以进行文件名的匹配。
1. 通配符匹配
使用fnmatch.fnmatch()
函数可以进行通配符匹配,判断文件名是否符合指定规则:
import fnmatch
file_name = "file.txt"
if fnmatch.fnmatch(file_name, '*.txt'):
print("文件名符合指定规则")
else:
print("文件名不符合指定规则")
运行结果:
文件名符合指定规则
六、总结
本文介绍了在Python中读取文件名的多种方法。使用os
模块可以获取当前工作目录、目录下的文件名、判断是否为文件或文件夹等;使用Path
对象可以更方便地获取文件名和文件夹路径;使用glob
模块可以查找符合规则的文件名;使用fnmatch
模块可以进行文件名的通配符匹配。根据具体的需求,选择合适的方法来读取文件名,可以更好地处理文件操作。