Python 仅按文件名读取文件,而不知道其目录

Python 仅按文件名读取文件,而不知道其目录,python,python-3.x,Python,Python 3.x,我目前正在进行一个项目,在这个项目中,我试图通过只知道文件名而不知道它们所属的目录来读取一些文件。脚本文件可能与文本文件位于相同或不同的文件夹中(文本文件目录未知)。如果您询问如何搜索具有给定名称的文件,您可以使用并检查名称是否与您要查找的文件相匹配。当然,可能有多个文件的名称与您要查找的名称相同。警告:以下代码将运行数天,但您要求它。 # If you would like to limit your search to something reasonable # replace "/" w

我目前正在进行一个项目,在这个项目中,我试图通过只知道文件名而不知道它们所属的目录来读取一些文件。脚本文件可能与文本文件位于相同或不同的文件夹中(文本文件目录未知)。

如果您询问如何搜索具有给定名称的文件,您可以使用并检查名称是否与您要查找的文件相匹配。当然,可能有多个文件的名称与您要查找的名称相同。

警告:以下代码将运行数天,但您要求它。

# If you would like to limit your search to something reasonable
# replace "/" with your subdirectories.
res = os.subprocess.check_output(["find", "/", "-name", f]).decode("utf-8").split("\n")
for candidate in res:
    with open("candidate", YOUR_FLAGS):
        ... do something
。。。其中,
f
是您的文件名,
您的_标志
是您要读取它(
“r”
)还是写入(
“w”
)、追加等等


为此使用
os.subprocess
的原因是在大型文件系统上使用
os.walk
效率低下。从
find
开始的
fts
后端减少了创建进程的开销,并且随着文件数量的增加,成本会降低很多。

这在一行中是不可能的,但是您可以使用os模块在所有目录中搜索文件,例如使用os.walk()


如果有两个文件同名,该怎么办?感谢您让我们了解您的编码工作的最新情况。你有问题吗?你试过什么吗?问题是什么,你遇到了什么问题?