Seite 1 von 1

Gzip.file(datei) oder tarfile.file(datei)

Verfasst: Montag 8. Dezember 2008, 18:41
von tejste
Hallo,

erst mal vielen Dank für die super Tipps hier. In einige Threads habe ich schon geschaut, habe aber meinen Fall nicht gefunden.
Ich habe folgendes Problem.

Ich möchte gern eine Datei in der form datei.gz öffnen. Da die Datei erst dynamisch durch einen Suchalgorithmus gefunden werden muss, funktioniert das

x= tarfile.open(r“/ordner/ordner1/datei.gz“,“w“)

nicht.

Der Suchalgorithmus gibt eine Dateivariable (Datei) zurück und die kann ich mit etwas tricksen durch

x=file(Datei,“w“) öffnen (warum nicht mit open(Datei,"w")?? Leider ist die Datei getarrt und jeder Versuch diese mit tarfile.file(…) zu öffnen schlägt fehl.

Hat irgendeiner eine Idee.

Vielen Dank im Voraus.

Verfasst: Montag 8. Dezember 2008, 18:51
von Darii
Drückt sich "funktioniert nicht" auch in irgendwelchen konkreten Fehlermeldungen aus, oder passiert wirklich *nichts*? Und was verstehst du unter einer Dateivariable?

output

Verfasst: Montag 8. Dezember 2008, 19:16
von tejste
Variable heisst: die Datei ist nicht spezifiziert sondern wird erst ermittelt. Folglich kann der Dateiname nicht "hart verdrahtet" werden sondern muss dynamisch bleiben.

und die Fehlermeldungen:

ValueError undiscernible mode
AttributeError module object has no attribute file
TypeError an integer is required

Verfasst: Montag 8. Dezember 2008, 19:21
von numerix
Es ist für andere am einfachsten nachzuvollziehen und zu analysieren, wenn du den Code zeigst, der den Fehler produziert und den Original-Traceback.

Re: output

Verfasst: Dienstag 9. Dezember 2008, 09:19
von Darii
tejste hat geschrieben:Variable heisst: die Datei ist nicht spezifiziert sondern wird erst ermittelt. Folglich kann der Dateiname nicht "hart verdrahtet" werden sondern muss dynamisch bleiben.
Gut, also ein String mit dem Dateinamen? Rest s. numerix.

hallo

Verfasst: Dienstag 9. Dezember 2008, 09:36
von tejste
Hallo, Du hast recht,

hier mein kern"Code" (ziemlich unpythonisch) aber ich werde mich bessern

Code: Alles auswählen

import tarfile
import gzip
import zipfile

dateisuche=int(raw_input("Index: "))
if d.has_key(dateisuche):
    x = d[dateisuche] 
    print x
else: 
    print "den Index gibts nicht"
    
a="/opt/log"
dateisuche1 = a+x
#print dateisuche1 
datei = tarfile.file(dateisuche1,"rb")
bla1 = datei.read()
print bla1


Traceback (most recent call last):
  File "Logfile_seeker.py", line 135, in <module>
    datei = tarfile.file(dateisuche1,"rb")
AttributeError: 'module' object has no attrib






Problem gelöst!!

Verfasst: Dienstag 9. Dezember 2008, 14:35
von tejste
ein banaler Tipp in einem sehr frühen Post (Leonidas glaube ich, gab den Tipp keine "from ... import *" zu verwenden). Scheinbar kommt der Fehler durch mein os import einige Seiten vorher zustande. Wenn ich diesen Sternchen Import rausnehme funktionierts auch mit "open" und gzip.

Ein Klasse Forum, wenn man lange genug sucht, findet man wahrscheinlich alles :lol:

Code: Alles auswählen

datei = gzip.open(dateisuche1,"r")