Error: Datei gibt es 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
Civili4n
User
Beiträge: 12
Registriert: Freitag 3. April 2009, 07:30

Mittwoch 8. April 2009, 15:50

Hi,
ich wollte in einem Programm ein error einfügen falls die Quelldatei nicht exestiert.
hab jetzt son seit über einer stunde gesucht -.-''
von mir aus haut mich falls es schon einen threat gibt :P

Code: Alles auswählen

import io

source = io.FileIO("C:\\blabla.txt", "r")
file = io.FileIO("C:\\blubb.txt", "a")

count = 0

data=source.read(512)
source.seek(0)
if len(data) ==0:
    print ("Error: The source file is empty!")
else:
    while True:
        data = source.read(512)

        nBytesRead = len(data)    

        if nBytesRead > 0:
            print("loop:", count+1, "BytesRead:", nBytesRead)
            file.write(data)
        else:
            break

        count = count + 1

file.close()
source.close()
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Mittwoch 8. April 2009, 15:55

Ich weiß ja nicht, was du mit dem io-Modul vor hast...

Code: Alles auswählen

>>> try:
...   fp = open("test.txt", "r")
... except IOError:
...   print "Argh, Datei ist nicht, Altah!"
...
Argh, Datei ist nicht, Altah!
>>>
Edit: Ausabe um "Altah" erweitert ^^
Das Leben ist wie ein Tennisball.
DasIch
User
Beiträge: 2435
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Mittwoch 8. April 2009, 16:01

Verwende open statt io.FileIO.

Öffne nie Dateien ohne with oder try..finally um sicherzustellen dass die Datei geschlossen wird. In diesem Fall ist contextlib.nested einen Blick wert.

Strings haben eine .format() Methode, die solltest du dir mal anschauen.

Außerdem gibt es +=, -=, *=, /= und //= um Zahlen zu verändern.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Mittwoch 8. April 2009, 18:33

Wenn es nur darum geht, ob eine Datei existiert:

Code: Alles auswählen

import os
if not os.path.exists("foo.bar"):
    raise Exception("nix foo.bar")
Man sollte vielleicht noch prüfen, ob es eine Datei oder ein Verzeichnis ist und man will vielleicht auch wissen, ob es ein Link ist. Mit `os.stat()` kann man sich gleich einen ganzen Schwung an Informationen auf einmal holen und z.B. die Länge anschauen. Wenn die Datei nicht existiert, gibt es einen `OSError`. An die Länge kommt man aber auch über `os.path.getsize()`.

Stefan
Antworten