有没有比列出目录中的所有文件更快的查找文件的方法?
Is there a faster way to find a file than by listing all files in the directory?
我的工作流程如下所示:
for i in some_list:
if i not in os.listdir(a_directory):
x = do_something(i)
x.to_pickle(f"{a_directory}/{i}")
os.listdir
开销很大,因为目录很大,而且是在网络文件系统上。
我有多个工人在做这项工作,所以我不能只列出一次目录的内容。如果我这样做,那么我的工人将重复他们的工作,而且 do_something
毕竟比 os.listdir
.
贵
有没有什么东西可以查找特定文件的存在,而不是将它们全部转储到 python 列表中供我进行字符串匹配?
您可以根据这个问题直接检查文件是否存在:Check whether a file exists
来自那个答案:
import os.path
os.path.isfile(fname)
或者:
from pathlib import Path
my_file = Path("/path/to/file")
if my_file.is_file():
# file exists
我的工作流程如下所示:
for i in some_list:
if i not in os.listdir(a_directory):
x = do_something(i)
x.to_pickle(f"{a_directory}/{i}")
os.listdir
开销很大,因为目录很大,而且是在网络文件系统上。
我有多个工人在做这项工作,所以我不能只列出一次目录的内容。如果我这样做,那么我的工人将重复他们的工作,而且 do_something
毕竟比 os.listdir
.
有没有什么东西可以查找特定文件的存在,而不是将它们全部转储到 python 列表中供我进行字符串匹配?
您可以根据这个问题直接检查文件是否存在:Check whether a file exists
来自那个答案:
import os.path
os.path.isfile(fname)
或者:
from pathlib import Path
my_file = Path("/path/to/file")
if my_file.is_file():
# file exists