411 Stimmen

Wie prüft man, ob eine Datei leer ist oder nicht?

Ich habe eine Textdatei. Wie kann ich prüfen, ob sie leer ist oder nicht?

514voto

ghostdog74 Punkte 305138
>>> import os
>>> os.stat("file").st_size == 0
True

160voto

Jon Punkte 5788
import os    
os.path.getsize(fullpathhere) > 0

93voto

ronedg Punkte 1140

Beide getsize() y stat() löst eine Ausnahme aus, wenn die Datei nicht existiert. Diese Funktion gibt True/False zurück, ohne eine Exception auszulösen (einfacher, aber weniger robust):

import os
def is_non_zero_file(fpath):  
    return os.path.isfile(fpath) and os.path.getsize(fpath) > 0

58voto

M.T Punkte 4409

Wenn Sie Python 3 mit pathlib können Sie auf os.stat() Informationen über die Path.stat() Methode, die das Attribut st_size (Dateigröße in Bytes):

>>> from pathlib import Path
>>> mypath = Path("path/to/my/file")
>>> mypath.stat().st_size == 0 # True if empty

39voto

robert king Punkte 15261

Wenn Sie die Datei aus irgendeinem Grund bereits geöffnet hatten, können Sie dies versuchen:

>>> 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" # The first character is the empty string..
...     else:
...         my_file.seek(0) # The first character wasn't empty. Return to the start of the file.
...         # Use file now
...
file is empty

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X