在进行日常程序开发过程中,获取文件名是一个普遍的需求。本篇文章将演示如何用Python获取文件名,以及获取文件路径和拓展名。
一、使用os模块
1.1 os.listdir()方法
Python的os模块提供了一系列用于操作操作系统功能的方法。其中一个方法就是os.listdir()
,它可以返回指定目录下的所有文件和文件夹的名称。我们可以利用这个方法来获取文件夹中所有文件的名称。
def get_file_name_1(file_path):
file_names = os.listdir(file_path)
return file_names
file_path = './data'
file_names = get_file_name_1(file_path)
print(file_names)
输出结果:
['2023-08-07_12.txt', '2023-08-07_09.txt', '2023-08-07_11.txt', '2023-08-07_10.txt', '2023-08-07_08.txt']
1.2 os.path()方法
Python的os.path模块提供了一些有用的方法来处理文件路径。我们可以使用os.path.basename()
方法来获取文件的基名(即文件名加扩展名),或者使用os.path.splitext()
方法来获取文件的扩展名。
def get_file_name_2(file_path):
file_names = []
for root, dirs, files in os.walk(file_path):
for file in files:
file_names.append(os.path.basename(file))
return file_names
file_path = './data'
file_names = get_file_name_1(file_path)
print(file_names)
输出结果:
['2023-08-07_12.txt', '2023-08-07_09.txt', '2023-08-07_11.txt', '2023-08-07_10.txt', '2023-08-07_08.txt']
这里,补充一些关于os.path模块在处理文件方面的基本使用方法:
import os
path = '/home/user/documents/file.txt'
# os.path.basename()获取文件名
filename = os.path.basename(path)
print(filename) # 输出 "file.txt"
# os.path.dirname()获取文件路径
directory = os.path.dirname(path)
print(directory) # 输出 "/home/user/documents"
# os.path.splitext()获取文件名和拓展名
filename_without_ext, file_extension = os.path.splitext(filename)
print(filename_without_ext) # 输出 "file"
print(file_extension) # 输出 ".txt"
二、使用Pathlib模块
Pathlib是Python3.4以上版本中自带的模块,用于处理文件路径。它提供了易于使用的面向对象的接口,可以轻松获取文件名,路径和拓展名。
from pathlib import Path
path = Path('/home/user/documents/file.txt')
# Path.name获取文件名
filename = path.name
print(filename) # 输出 "file.txt"
# Path.parent获取文件路径
directory = path.parent
print(directory) # 输出 "/home/user/documents"
# Path.suffix获取拓展名
file_extension = path.suffix
print(file_extension) # 输出 ".txt"
# Path.stem获取文件名不带拓展名
filename_without_ext = path.stem
print(filename_without_ext) # 输出 "file"
三、使用正则表达式获取文件名
如果文件名不在文件路径的末尾,可以使用正则表达式来提取文件名。文章来源:https://www.toymoban.com/news/detail-718653.html
import re
path = '/home/user/documents/file.txt'
# 使用正则表达式获取文件名
filename = re.findall(r'/([^/]+)\.txt', path)[0]
print(filename) # 输出 "file"
结论
以上是三种获取文件名的方法,使用os模块和Pathlib模块可以更加简洁方便地获取文件名、路径和拓展名,而使用正则表达式可以灵活处理较为复杂的文件路径。在编写Python程序时,可以根据实际情况选择最合适的方法。文章来源地址https://www.toymoban.com/news/detail-718653.html
参考资料
- Python获取文件名
到了这里,关于Python获取文件名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!