kleine Frage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Hi

gibt es bei write etwas mit das man die Zeilen angibt.
so wie bei tkinter beim Text wigdet. da ist es ja so:

Code: Alles auswählen

bla.get(0.0, 'end')
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

jtschoch hat geschrieben:gibt es bei write etwas mit das man die Zeilen angibt.
Welches write()? Das aus telnetlib oder das zu ssl.SSLSocket gehörende?
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

na das

Code: Alles auswählen

test = open('test.txt', 'w')
.
.
.
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Du redest von "write", in deinem Beispiel benutzt du aber die Methode "get". Willst du also eine bestimmte Zeile aus einer Datei auslesen und in einer Datei eine Zeile an eine bestimmte Stelle hinzufügen / ändern? Mit anderen Worten: Willst du auf die Datei lesen oder schreibend zugreifen? Wichtig ist auf jeden Fall zu sagen, dass es so eine Methode nicht gibt und das ist auch gut so. Wenn du aus einer Datei die Zeile X auslesen willst, musst du die ersten X Zeilen lesen und kannst danach abbrechen:

Code: Alles auswählen

>>> lines_to_read = 3
>>> with open('tmp') as f:
...     for lineno, line in enumerate(f, 1):
...         if lineno == lines_to_read:
...             break
... 
>>> line
'dritte zeile\n'
Willst du die Zeile X ersetzen, so ist es am einfachsten, den kompletten Dateiinhalt einzulesen, anschließend die Ersetzung durchzuführen und schließlich den geänderten Inhalt in die Datei zu schreiben (Modus 'w').


Edit: Nachteil meines geposteten Codes: Wenn die Datei weniger als `lines_to_read` Zeilen hat, bekommt `line` den Inhalt der letzten Zeile der Datei (weil die for-schleife dann ohne break durchgelaufen ist). Dies mittels for-else zu verhindern, überlasse ich als Übungsaufgabe :P
BlackJack

Die write()-Methode auf `file`-Exemplaren ist dokumentiert.

Wenn ich mal raten müsste, möchtest Du Dir auch mal die Methoden auf Zeichenkettenobjekten anschauen. Stehen auch in der Dokumentation. Und in den meisten Tutorials findet sich auch etwas zu Zeichenketten und Operationen darauf.
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Danke
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

jtschoch hat geschrieben:na das

Code: Alles auswählen

test = open('test.txt', 'w')
Da ist keins, aber ich nehme an, du möchtest die write-Methode des file-Objekts verwenden und findest die Dokumentation dazu nicht.

Bitte: file.write(str).
Antworten