在没有内部目录的目录目录中生成文件



我的任务是训练一个ML模型。我想提供文件以避免将来出现内存问题。我偶然发现了一个我调整了一下的解决方案。但是修改并不完全满足我的需求。假设我拥有的文件夹结构如下所示:

../

一个/

2014年01月01日

2014年01月05

日2014年01月06

日/B

2014年01月02

日2014年01月06

日。

所以基本上在文件夹中:测试,我有子目录,如:A,B..等。 在每个子目录中,我都有日期:2014-01-01等。

我需要我的生成器做的是按日期时间顺序为我提供文件,忽略目录本身(顺序子目录无关紧要,我可以先从 B 获取文件,然后从 A 获取文件,没关系(。

我有以下代码自动取款机:

def sort_func(x):
x_ = x
x = str(x)
# dates - files
try:
return datetime.datetime.strptime(x, "%Y-%m-%d")
# folder. Ignore
except ValueError as e:
return x_
except Exception as e:
raise(e)
p = pathlib.Path('../datasets/train/')
a = sorted(p.glob('**/*'), key=sort_func)

这将输出如下内容:

[PosixPath('../datasets/train/A'),
PosixPath('../datasets/train/A/2014-01-01'),
PosixPath('../datasets/train/A/2014-01-02'),
PosixPath('../datasets/train/A/2014-01-03'),
...]

即我不需要第一个路径和所有目录路径。

如何省略这些?

编辑:实际上,glob 似乎返回了一个列表...p.glob('*/*')似乎可以解决问题,但是sorted(.)给了我一个列表,而不是一个接一个地生成文件

您可以使用Path对象的is_file方法进行过滤:

a = sorted([path for path in p.glob('**/*') if path.is_file()], key=sort_func)

相关内容

  • 没有找到相关文章

最新更新