Skip to main content
 首页 » 编程设计

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

2025年05月04日17sharpest

在 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()),那么它会知道缓冲。