在 py 模块中,我写:
outFile = open(fileName, mode='w')
if A:
outFile.write(...)
if B:
outFile.write(...)
在这些行中,我没有使用 flush 或 close 方法。 然后在这些行之后,我想检查这个“outFile”对象是否为空。我该如何处理它?</p>
最佳答案
您的代码存在一些问题。
您不能
.write
到您用'r'
打开的文件。您需要打开(fileName, 'w')
。如果
A 或 B
那么您肯定已经写入了文件,所以它不是空的!
除了那些。您可以使用
获取文件的长度os.stat(outFile.fileno())
编辑:我将解释 flush
的作用。 Python 通常用于执行大量的文件读写,这可能很慢。因此对其进行了调整,使它们尽可能快。这样做的一种方法是“缓冲”此类写入,然后将它们全部放在一个大块中:当您写入一个小字符串时,Python 会记住它,但不会真正将其写入文件,直到它认为应该这样做。
这意味着如果你想通过检查文件来判断你是否已经将数据写入文件,你必须告诉Python首先写入它记住的所有数据,否则你可能不会看见。 flush
是写入所有缓冲数据的命令。
当然,如果您询问 Python 是否向文件写入了任何内容,比如通过检查文件中的位置 (.tell()
),那么它会知道缓冲。
关于python - 如何确认一个文件对象是空的? [Python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13975845/