使用 Python 查找文件
本教程将讨论在 Python 中查找文件的方法。
在 Python 中使用 os.walk()
函数查找文件
如果我们想使用 python 在我们的机器上找到特定文件的路径,我们可以使用 os
模块。os
模块为我们的代码提供了许多与操作系统相关的功能。os.walk()
函数 将 path
字符串作为输入参数,并为我们提供目录路径、目录名称和 path
中每个文件的文件名。下面的示例代码向我们展示了如何使用 os.walk()
函数在 Python 中查找文件。
import os
def findfile(name, path):
for dirpath, dirname, filename in os.walk(path):
if name in filename:
return os.path.join(dirpath, name)
filepath = findfile("file2.txt", "/")
print(filepath)
输出:
/Users\maisa\Documents\PythonProjects\file2.txt
在上面的代码中,我们声明了 findfile()
函数,该函数使用 os.walk()
函数来查找我们的文件。findfile()
函数将文件名和根路径作为输入参数,并返回我们指定文件的路径。这种方法为我们提供了文件的绝对路径。
在 Python 中使用 glob.glob()
函数查找文件
我们还可以使用 glob.glob()
函数 来解决我们当前的问题。glob.glob()
函数将路径名作为输入参数,并返回与输入参数匹配的所有文件路径的列表。我们可以指定一个正则表达式作为只匹配我们文件的输入参数。下面的示例代码向我们展示了如何使用 glob.glob()
函数在 Python 中查找文件。
import glob
filepath = glob.glob("**/file.txt", recursive=True)
print(filepath)
输出:
['Find File\\file.txt']
我们将文件名作为输入参数传递给 glob.glob()
函数,它返回我们文件的相对路径。此方法可以为我们提供文件的相对路径以及绝对路径。
在 Python 中使用 Path.glob()
函数查找文件
另一种方法是使用 pathlib
模块。这个 Python 模块提供了代表不同操作系统的文件系统路径的类。我们可以使用 pathlib
模块中的 Path.glob()
函数 来解决我们的特定问题。这个函数类似于 glob
模块中的 glob()
函数。Path.glob()
函数将模式作为输入参数,并返回与输入参数匹配的路径对象列表。示例代码片段向我们展示了如何使用 pathlib
模块在 Python 中查找文件。
import pathlib
filepath = sorted(pathlib.Path(".").glob("**/file2.txt"))
print(filepath)
输出:
[WindowsPath('file2.txt')]
我们将与我们的文件匹配的模式字符串传递给 Path.glob()
函数。Path.glob()
函数返回一个与模式匹配的 WindowsPath
对象列表。使用这种方法,我们可以获得特定于我们操作系统的路径对象。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn