Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在没有内部目录的目录目录中生成文件_Python_Python 3.x_Yield Keyword - Fatal编程技术网

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

Python 在没有内部目录的目录目录中生成文件,python,python-3.x,yield-keyword,Python,Python 3.x,Yield Keyword,我的任务是训练一个ML模型。我希望生成这些文件以避免将来出现内存问题。我偶然发现了一个解决方案,我做了一些调整。但这项修改并不完全符合我的需要。假设我的文件夹结构如下所示: / A/ 2014-01-01 2014-01-05 2014-01-06 /B 2014-01-02 2014-01-06 基本上,在文件夹test中,我有如下子文件夹:A,B。。等 在每个子目录中,我都有日期:2014-01-01等等 我需要生成器做的是按日期时间顺序生成文件,忽略目录本身(顺序子目录无关紧要,我可以先

我的任务是训练一个ML模型。我希望生成这些文件以避免将来出现内存问题。我偶然发现了一个解决方案,我做了一些调整。但这项修改并不完全符合我的需要。假设我的文件夹结构如下所示:

/

A/

2014-01-01

2014-01-05

2014-01-06

/B

2014-01-02

2014-01-06

基本上,在文件夹test中,我有如下子文件夹: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'),
...]
i、 e.我不需要第一个路径和所有目录路径

我如何省略这些


编辑:实际上,glob似乎返回了一个列表
p.glob(“*/*”)
似乎起到了作用,但是
sorted(.)
给了我一个列表,而不是一个接一个地生成文件

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

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