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