【问题标题】:find first file in a dir without using a loop in python在不使用python循环的情况下在目录中查找第一个文件
【发布时间】:2021-06-21 16:48:50
【问题描述】:

我试图在不使用 for 循环的情况下查找在根目录中找到的文件的第一个结果。

这可能吗?我尝试使用 rglob 和 os.walk() 但我仍然需要一个 for 循环来获得我的结果,这会浪费时间,因为我只需要我得到的第一个结果。

我使用this 帖子尝试将它与 rglob 一起使用,但不幸的是它对我不起作用:

fp = r"C:\Users\AnxPi\Desktop\test_DS"

fp_pickle = Path(fp).rglob('*test.pkl')
print(fp_pickle)

输出:

<generator object Path.rglob at 0x0000023957C84CF0>

仅当我执行以下操作时才有效,这与运行 for 循环相同:

sorted(Path(fp).rglob(*test.pkl'))[0]

【问题讨论】:

    标签: python loops file


    【解决方案1】:

    要获取生成器的第一个值,请使用next()

    first_value = next(Path(fp).rglob('*test.pkl'))
    

    如果您不希望它在生成器耗尽时引发StopIteration,请传入一个适合您的用例返回的哨兵值:

    first_value = next(Path(fp).rglob('*test.pkl'), None)
    

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 1970-01-01
      • 2021-11-25
      • 2021-05-02
      • 2012-06-27
      • 2018-05-31
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多