仅根据名称读取文件,而不知道其目录

时间:2018-04-13 20:04:59

标签: python python-3.x

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

3 个答案:

答案 0 :(得分:2)

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

# 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是您的文件名,YOUR_FLAGS是您要阅读它("r")还是写("w"),追加等等

使用os.subprocess背后的原因是巨型文件系统上的os.walk效率不高。来自fts的{​​{1}}后端减轻了创建流程的开销,随着文件数量的增加,最终成本会降低。

答案 1 :(得分:1)

如果您正在询问如何搜索以查找具有指定名称的文件,则可以使用os.walk并检查名称是否与您要查找的内容相匹配。当然,可能有多个文件带有您正在寻找的名称。

答案 2 :(得分:0)

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

https://www.tutorialspoint.com/python/os_walk.htm