Seite 1 von 1

file.seek und argumente

Verfasst: Freitag 28. April 2006, 15:45
von murph

Code: Alles auswählen

#!/usr/bin/env python
import zipfile, glob, os, bz2
from time import sleep


decision = raw_input("Bitte das Kennwort: ")
if decision == "dassindmeinedateien":

    file = zipfile.ZipFile("timtrautman.dat", "w")

    for name in glob.glob("dateien/*"):
        file.write(name, os.path.basename(name), zipfile.ZIP_DEFLATED)
  

    file.close()
    file = open("timtrautman.dat", "w")
    newfile = file.seek(-1, 2)
    file.write(hhhhhhhhhhhhhhhhhhhh)
    def up(x):
        return chr((ord(x) -4) % 256)
    
    crypted = ""
    #for i in newfile:
    #    crypted = crypted+up(i)

else:
    x = 0
    print "Falsches Passwort"
    while x<10:
        print"\a" 
        sleep(0.01)
        x+=1
Traceback (most recent call last):
File "./Vercoder.py", line 17, in ?
newfile = file.seek(-1, 2)
IOError: [Errno 22] Invalid argument
Wieso nimmt er den Befehl file.seek nicht an?
Was ist an den Argumenten anders, als es sein müsste?
Habe den kleinen Part aus einem Tutorial...

Verfasst: Freitag 28. April 2006, 17:02
von rayo
Hi

Weil man in einer leeren Datei nicht eins Rückwärts vom Dateiende suchen kann. Ich denke du möchtest das zweite Mal die Datei mit "r+b" anstatt "w" öffnen (w: write, r+: read/write) und das erste Mal bei zipfile mit "wb".

Das b bedeutet dass es eine binäre Datei ist, was ja das Zipfile ist (keine Textdatei auf jedenfall).

Vielleicht hilft dir das mal, sonst kannst du in der Doku http://docs.python.org/lib/built-in-fun ... t-in-funcs bei file nachlesen was genau die Parameter machen.

Gruss

PS: überschreib mit deinen Variablennamen keine Built-In Funktionen (bei dir ist es file, sieht man auch dem Highlighting an)

Verfasst: Freitag 28. April 2006, 17:06
von Toni83
Wie rayo schon gesagt hat: erst was reinschreiben dann suchen.
Ergänzend noch hier ein Beispiel:

http://www.java2s.com/Code/Python/File/ ... ointer.htm

Gruss,
Toni

Verfasst: Samstag 29. April 2006, 12:52
von murph
Vielen Dank!