我有一个文本文件。我如何检查它是否为空?


当前回答

import os    
os.path.getsize(fullpathhere) > 0

其他回答

如果您有文件对象,那么

>>> import os
>>> with open('new_file.txt') as my_file:
...     my_file.seek(0, os.SEEK_END) # go to end of file
...     if my_file.tell(): # if current position is truish (i.e != 0)
...         my_file.seek(0) # rewind the file for later use 
...     else:
...         print "file is empty"
... 
file is empty

如果文件不存在,getsize()和stat()都会抛出异常。这个函数将返回True/False而不抛出(更简单但不那么健壮):

import os
def is_non_zero_file(fpath):  
    return os.path.isfile(fpath) and os.path.getsize(fpath) > 0
import os    
os.path.getsize(fullpathhere) > 0
>>> import os
>>> os.stat("file").st_size == 0
True

结合ghostdog74的回答和评论:

>>> import os
>>> os.stat('c:/pagefile.sys').st_size==0
False

False表示非空文件。

让我们写一个函数:

import os

def file_is_empty(path):
    return os.stat(path).st_size==0