6 ответов:
и
getsize()иstat()будет бросать исключение, если файл не существует. Эта функция вернет True / False без метания:import os def is_non_zero_file(fpath): return os.path.isfile(fpath) and os.path.getsize(fpath) > 0
если по какой-то причине у вас уже был открыт файл вы можете попробовать это:
>>> with open('New Text Document.txt') as my_file: ... # I already have file open at this point.. now what? ... my_file.seek(0) #ensure you're at the start of the file.. ... first_char = my_file.read(1) #get the first character ... if not first_char: ... print "file is empty" #first character is the empty string.. ... else: ... my_file.seek(0) #first character wasn't empty, return to start of file. ... #use file now ... file is empty
хорошо, так что я буду комбинировать ответ 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
если у вас есть объект file, то
>>> 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
Comments