71 lines
2.3 KiB
Python
71 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
from velamentum.dateien.DateiSystemElement import DateiSystemElement
|
|
|
|
class Datei(DateiSystemElement):
|
|
"""Die Klasse Datei dient dem Umgang mit Dateien.
|
|
|
|
Attribute:
|
|
--- von 'DateiSystemElement' geerbte ---
|
|
groesse (Zahl): Die Größe der Datei in Byte.
|
|
inhalt (Zeichenkette): Der Inhalt der Datei.
|
|
"""
|
|
|
|
def __init__(self, pPfad, pSofortEinlesen=False):
|
|
"""Konstruktor. Initialisiert die Datei.
|
|
|
|
Parameter:
|
|
pPfad (Zeichenkette): Der Pfad der Datei.
|
|
[optional] pSofortEinlesen: Gibt an, ob die Datei direkt bei der
|
|
Initialisierung eingelesen werden soll. [Standardwert: False]
|
|
"""
|
|
DateiSystemElement.__init__(self, pPfad)
|
|
if(pSofortEinlesen):
|
|
self.einlesen()
|
|
|
|
def nenneGroesse(self):
|
|
"""Anfrage. Gibt die Größe der Datei in Byte zurück.
|
|
|
|
Parameter:
|
|
--- keine ---
|
|
|
|
Rückgabe (Zahl): Die Größe der Datei in Byte.
|
|
"""
|
|
tSize = 0
|
|
if self.istVorhanden():
|
|
try:
|
|
tSize = os.path.getsize(self.pfad)
|
|
except:
|
|
print("Fehler. Auf '%s' kann nicht zugegriffen werden."
|
|
% self._pfad)
|
|
|
|
def einlesen(self):
|
|
"""Auftrag. Liest die Datei in das Attribut 'inhalt' ein.
|
|
|
|
Parameter:
|
|
--- keine ---
|
|
"""
|
|
if self.istVorhanden():
|
|
try:
|
|
tDatei = open(self._pfad, "r")
|
|
self.inhalt = tDatei.read()
|
|
tDatei.close()
|
|
except:
|
|
print("Fehler. Einlesen von '%s' nicht möglich." % self._pfad)
|
|
else:
|
|
self.inhalt = ""
|
|
|
|
def speichern(self):
|
|
"""Auftrag. Schreibt den Wert des Attributs 'inhalt' in die Datei.
|
|
|
|
Parameter:
|
|
--- keine ---
|
|
"""
|
|
try:
|
|
tDatei = open(self._pfad, "w")
|
|
tDatei.write(self.inhalt)
|
|
tDatei.close()
|
|
except:
|
|
print("Fehler. Speichern von '%s' nicht möglich." % self._pfad)
|
|
|
|
# Attribute (verdeckte Getter und Setter)
|
|
groesse = property(nenneGroesse, doc="Die Größe der Datei in Byte.")
|