在 Python 中检查生成器是否为空


本文讨论如何在 Python 中检查生成器是否为空。


在 Python 中检查生成器是否为空

在 Python 中检查生成器是否为空是指检查路径以确保它为空。 为此,必须事先将相关路径标识为目录或文件,这使我们可以选择所需的检查方式来轻松使用。

以下代码片段显示了两个名为 filepath 和 dirpath 的占位符变量的参与。 这些变量用于识别本地文件和目录:

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

上述占位符变量可以与作为标准包的 Python 中的 os 模块一起使用。 它可以与适用于相关操作系统的对象、函数和常量一起使用。

os 模块也可以表示为 os.path 并涉及作为函数工作的 isdir()isfile() 。 这些功能使用户能够区分给定的目录和任何文件。

两个函数工作时的返回值都是布尔值。

考虑以下示例:

import os

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

os.path.isfile (dirpath) # False
os.path.isdir (dirpath) # True
os.path.isfile (filepath) # True
os.path.isdir (filepath) # False

isdir()isfile() 函数在此示例中分别表示为 os.path.isdir 和 os.path.isfile。 两个函数工作时的返回值都是布尔值。

这意味着这些函数的执行输出应该返回 True 或 False。 True 和 False 的返回值根据其各自的功能显示相关路径是文件还是目录。

经此确认后,在Python 3.4及以后版本可以使用另一个名为pathlib的模块。 使用此模块,面向对象的界面使用户能够轻松地使用他们的文件系统。

与 os.path 模块相比,该模块确保了实现中的简化。 它有一个 Path 类参与其工作,并接受一个路径作为参数。

在此之后,该路径返回一个 Path 对象,因此用户可以轻松地使用属性和方法链接或查询它。

看看下面的代码片段:

from pathlib import Path

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

Path (dirpath).is_file() # False
Path (dirpath).is_dir() # True
Path (filepath).is_file() # True
Path (dirpath).is_file() # False

在此代码段中,检查 Path 对象以确保它是一个目录或一个具有布尔值作为返回值的文件。 dirpath 和 filepath 变量也涉及与 is_file() 和 is_dir() 方法关联的 Path 对象。

它们的实现将返回 True 或 False 的输出,将目录或文件显示为对象。

下一步是检查生成器是否为空并且可能涉及空路径或文件。 路径或文件也可以命名为零字节文件,并且可以是没有内容或数据的不同类型。

请记住,包含没有数据的元数据的文件不属于空文件的范畴。 这甚至可能涉及包含作者的音乐文件。

可以在 macOS 和 LINUX 等平台上轻松创建空文件。 以下是如何做到这一点的片段:

$ touch emptyfile

以下代码片段显示了如何在 Windows 上执行此操作:

$ type nul > emptyfile

这样做之后,我们必须定义非空文件或空文件可以指向空文件的变量。 该空文件可能是零字节,而非空文件的大小是一个字节。

以下是一个示例:

emptyfile = "/mnt/f/code.books/articles/python/emptyfile"
nonemptyfile = "/mnt/f/code.books/articles/python/onebytefile”

有了这个,一个可选参数可以用于 next() 函数,用户可以使用它来确保生成器是空的。

这是一个代码片段:

_exhausted  = object()

if next (some_generator, _exhausted) is _exhausted:
	print ('empty generator')

在这个片段中,空生成器由一个耗尽的迭代器和一个对象的用法表示。 在此之后,一个 if 条件被放置在实现中,它检查具有一些生成器值的耗尽生成器。

在空生成器的情况下,条件满足,并且实现返回一个空生成器作为其输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迹忆客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值