python - 如何确认一个文件对象是空的? [Python]

标签 python file is-empty

在 py 模块中,我写:

outFile = open(fileName, mode='w')
if A:
    outFile.write(...)
if B:
    outFile.write(...)

在这些行中,我没有使用 flush 或 close 方法。 然后在这些行之后,我想检查这个“outFile”对象是否为空。我该如何处理它?<​​/p>

最佳答案

您的代码存在一些问题。

  1. 您不能.write 到您用'r' 打开的文件。您需要打开(fileName, 'w')

  2. 如果 A 或 B 那么您肯定已经写入了文件,所以它不是空的!

除了那些。您可以使用

获取文件的长度
os.stat(outFile.fileno())

编辑:我将解释 flush 的作用。 Python 通常用于执行大量的文件读写,这可能很慢。因此对其进行了调整,使它们尽可能快。这样做的一种方法是“缓冲”此类写入,然后将它们全部放在一个大块中:当您写入一个小字符串时,Python 会记住它,但不会真正将其写入文件,直到它认为应该这样做。

这意味着如果你想通过检查文件来判断你是否已经将数据写入文件,你必须告诉Python首先写入它记住的所有数据,否则你可能不会看见。 flush 是写入所有缓冲数据的命令。

当然,如果您询问 Python 是否向文件写入了任何内容,比如通过检查文件中的位置 (.tell()),那么它会知道缓冲。

关于python - 如何确认一个文件对象是空的? [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13975845/

相关文章:

python - Django:调试条目消失了

regex - 从命令行,仅在另一个正则表达式匹配后才进行 perl 替换匹配

android - Kotlin如何获取和打开视频

python - 在 postgreSQL 中查看表是否没有行的最快方法是什么?

php - 如果存在组字段元数据+容器div,如果字段为空,如何显示默认文本? [CMB2]

php - 如何使用 php 将零值视为 true?

php - Firebase JWT 库无法验证 Python JWT token

python - 在 AWS 上拍摄 RabbitMq 实例的快照是否会损害我的应用程序产品?

python - 没有名为 fake useragent 的模块

c - 为什么“while(!feof(file))”总是错误的?