Python os 读取文件全路径
概述
在进行文件操作时,我们经常需要获取文件的全路径。Python内置的os
模块为我们提供了一些方法来读取文件的全路径。本文将详细介绍如何使用Python的os
模块读取文件全路径,并给出一些示例代码来加深理解。
引入os模块
在使用os
模块之前,我们首先要引入它。可以使用以下代码来引入os
模块:
import os
读取当前文件全路径
首先,我们来看看如何读取当前文件的全路径。可以使用os.path
模块的abspath
函数来获取当前文件的绝对路径。
import os
file_path = os.path.abspath(__file__)
print("当前文件全路径:", file_path)
运行以上代码,输出如下:
当前文件全路径: /home/user/example.py
上述代码中,__file__
是Python的一个内置变量,它指向当前正在执行的脚本的文件名。os.path.abspath
函数会将相对路径转换为绝对路径,从而得到当前文件的全路径。
读取指定文件的全路径
除了获取当前文件的全路径外,我们还可以获取指定文件的全路径。可以使用os.path
模块的join
函数来将文件名和文件所在的目录连接起来,从而得到文件的全路径。
import os
file_name = "example.txt"
folder_path = "/home/user/"
file_path = os.path.join(folder_path, file_name)
print("指定文件的全路径:", file_path)
运行以上代码,输出如下:
指定文件的全路径: /home/user/example.txt
上述代码中,os.path.join
函数将文件名example.txt
和目录/home/user/
连接起来,从而得到文件的全路径。
递归读取文件全路径
有时候,我们需要递归地读取某个目录下所有文件的全路径。可以使用os.walk
函数来遍历目录树,并获取每个文件的全路径。
import os
folder_path = "/home/user/documents"
for folder_name, subfolders, filenames in os.walk(folder_path):
for filename in filenames:
file_path = os.path.join(folder_name, filename)
print("文件全路径:", file_path)
运行以上代码,会递归地遍历/home/user/documents
目录下的所有文件,并输出它们的全路径。
读取特定类型文件的全路径
在递归读取文件全路径的基础上,我们还可以根据文件的扩展名或文件名的匹配规则,筛选出特定类型的文件,并获取它们的全路径。
根据文件扩展名筛选文件
可以使用os.path
模块的splitext
函数来获取文件的扩展名,进而进行文件筛选。
下面的示例代码演示了如何读取某个目录下所有以.txt
为扩展名的文件的全路径:
import os
folder_path = "/home/user/documents"
for folder_name, subfolders, filenames in os.walk(folder_path):
for filename in filenames:
file_ext = os.path.splitext(filename)[1]
if file_ext == ".txt":
file_path = os.path.join(folder_name, filename)
print("文件全路径:", file_path)
根据文件名匹配规则筛选文件
如果我们希望根据文件名的匹配规则来筛选文件,可以使用re
模块提供的正则表达式功能。
下面的示例代码演示了如何读取某个目录下所有以数字开头的文件的全路径:
import os
import re
folder_path = "/home/user/documents"
pattern = r"^\d"
for folder_name, subfolders, filenames in os.walk(folder_path):
for filename in filenames:
if re.match(pattern, filename):
file_path = os.path.join(folder_name, filename)
print("文件全路径:", file_path)
上述代码中,使用正则表达式的^\d
表示文件名以数字开头,re.match
函数用于匹配文件名和正则表达式。
小结
本文介绍了如何使用Python的os
模块读取文件的全路径,包括读取当前文件的全路径、读取指定文件的全路径、递归读取文件全路径以及根据文件的扩展名或文件名的匹配规则筛选文件。os
模块提供了很多有用的功能来处理文件和目录,是进行文件操作的重要工具。