if irgendwas==1234: f.wirte "irgenwas" geht nicht

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
Krauzi
User
Beiträge: 77
Registriert: Montag 22. Oktober 2007, 18:06
Kontaktdaten:

Dienstag 5. Februar 2008, 14:02

Hallo, wieso geht das nicht:
f = file("C:/test.txt", "r")
txt = f.read()
f.close
print txt
if txt==1: f.wirte ("unlockvlv")
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Dienstag 5. Februar 2008, 14:05

Krauzi hat geschrieben:

Code: Alles auswählen

f = file("C:/test.txt", "r")
txt = f.read()
f.close
print txt
if txt==1: f.wirte ("unlockvlv")
1. Der Pfad stimmt nicht: C:\\test.txt
2. Du kannst nichts mehr in f schreiben, da du es ja geschlossen hast: f.close()
3. Es müsste f.write("unlockvlv") heißen. :wink:
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Dienstag 5. Februar 2008, 14:07

Um in eine Datei zu schreiben (f.wirte?), muss sie ja zum Schreiben geöffnet sein.
MfG
HWK
Benutzeravatar
BlackVivi
User
Beiträge: 762
Registriert: Samstag 9. Dezember 2006, 14:29
Kontaktdaten:

Dienstag 5. Februar 2008, 14:09

Craven hat geschrieben:1. Der Pfad stimmt nicht: C:\\test.txt
Das ist jedoch egal.

Code: Alles auswählen

>>> fl = file("d:/text.txt", "w")
>>> fl.write("bla")
>>> fl.close()
>>> fl = file("d:/text.txt")
>>> fl.read()
'bla'
>>> fl.close()
Ob Windows oder Linux ist dabei schnurz :3

Achja...

Miau
BlackJack

Dienstag 5. Februar 2008, 14:13

Und `read()` liefert den Inhalt der Datei als Zeichenkette. Die mit der Zahl 1 zu vergleichen ist immer `False`.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Dienstag 5. Februar 2008, 14:15

4. gibt read einen String zurück, demnach wird txt nie eine Zahl sein, höchstens "1".
Krauzi
User
Beiträge: 77
Registriert: Montag 22. Oktober 2007, 18:06
Kontaktdaten:

Dienstag 5. Februar 2008, 21:10

hm also erst mal danke für die antworten. Bringen mich zumindes schon ein bisschen weiter. Jetzt kommt noch ne frage, die ich nicht stellen müsste, könnte ich mich endlich zum kauf eines python buches überreden (aber da gibts so viele schlechte.....):
Ich will wie ihr ja schon bemerkt hab, einen wert aus einer datei auslesen. Je nach Zahl des Wertes wird dann in eine bestimmte datei etwas geschrieben.
Kann mir hier vllt jemand einen konkreten python beispiel code geben?

Noch was: beim post von BlackVivi steht:
fl.read()
'bla'
-> was macht das 'bla'? Bzw. was genau bewirkt file.read(). Ich dachte, dass liest die gesamte datei aus (deshalb möchte ich wissen, was das 'bla' unter file.read() macht).

MfG Krauzi
Benutzeravatar
Craven
User
Beiträge: 223
Registriert: Dienstag 24. Januar 2006, 13:37

Dienstag 5. Februar 2008, 21:45

Krauzi hat geschrieben:Noch was: beim post von BlackVivi steht:
fl.read()
'bla'
-> was macht das 'bla'? Bzw. was genau bewirkt file.read(). Ich dachte, dass liest die gesamte datei aus (deshalb möchte ich wissen, was das 'bla' unter file.read() macht).

Code: Alles auswählen

>>> fl.read()
'bla' #'bla' wird von fl.read() ausgegeben
BlackVivi hat seinen Code in der Konsole ausgeführt, deswegen wird der String direkt unter den Befehl geschrieben.

Wenn Du das gelesene allerdings einer Variable zuweist, wird es nicht ausgegeben:

Code: Alles auswählen

der_text = fl.read()
print der_text #hier wird 'bla' durch print ausgegeben
Edit: Du musst dir nicht unbedingt ein Pythonbuch kaufen, es gibt genügend Ebooks, z.B. hier: http://www.freebookzone.com/lookup.php? ... d=fbz-home
[code]q = 'q = %s; print q %% repr(q)'; print q % repr(q) [/code]
Antworten