Seite 1 von 1
Temporäre Datei mit Dateiverzeichnissen erstellen
Verfasst: Mittwoch 7. November 2012, 16:40
von marlened
Hallo,
ich möchte gerne eine temporäre Datei erstellen, in der eine Liste mit den Dateipfaden von allen .doc-Files ist. Ich habe unten den Code. Zunächst einmal habe ich alle Unterverzeichnisse von C:/Programme nach allen doc-Files durchsucht. Dann erstelle ich eine temporäre Datei, die dies beinhalten soll. Ich denke dass mein Fehler in der letzten Zeile liegt. Wäre schön, wenns mir jemand hier helfen kann.
Code: Alles auswählen
import os
for r,d,f in os.walk('C:/Programme/'):
for files in f:
if files.endswith('.doc'):
import tempfile
tmp = tempfile.TemporaryFile()
tmp.write(os.path.join(r,files))
tmp.seek(0)
list = tmp.read()
Grüße marlene
Re: Temporäre Datei mit Dateiverzeichnissen erstellen
Verfasst: Mittwoch 7. November 2012, 17:06
von StefanLawl
Hallo
Bitte den Code in python-Tags setzten (
Code: Alles auswählen
code[/ python][/b]).
Wo liegt denn überhaupt das Problem?
Stefan
Re: Temporäre Datei mit Dateiverzeichnissen erstellen
Verfasst: Mittwoch 7. November 2012, 18:12
von ws
Hallo Marlene,
Dein Programm sollte wahrscheinlich etwa so aussehen:
Code: Alles auswählen
import os
for r,d,f in os.walk('C:/Programme/'):
for files in f:
if files.endswith('.doc'):
import tempfile
tmp = tempfile.TemporaryFile()
tmp.write(os.path.join(r,files))
tmp.seek(0)
list = tmp.read()
Vielleicht erstmal was zum Stil. Hinter Kommas sollte man immer ein Leerzeichen einfügen, das erhöht einfach die Lesbarkeit.
Dann ist es allgemein nicht schön, innerhalb einer Schleife import-Statements wie "import tempfile" einzubauen. Und es hilft auch, seine Variablennamen passend zu benennen, um nicht durcheinander zu kommen - f in Deinem Beispiel ist eine Liste von Dateien, files in Deinem Beispiel enthält genau eine Datei. Also wäre es besser, die Dateiliste files zu nennen und dann mit "for f in files" die Schleife zu schreiben.
Das Problem in Deinem Beispiel ist, dass Du in der Schleife jedesmal ein neues TemporaryFile erzeugst, aber Du willst wahrscheinlich alle gefundenen Dokumente in eine Datei schreiben. Du müsstest deshalb das TemporaryFile ausserhalb (vor) der Schleife erzeugen.
Gruß
Wolfgang
Re: Temporäre Datei mit Dateiverzeichnissen erstellen
Verfasst: Mittwoch 7. November 2012, 19:22
von BlackJack
@marlened: Das Programmstück und die Problembeschreibung sieht sehr ähnlich eines Beitrags aus, der noch nicht so lange her ist. Das scheint also eine Hausaufgabe zu sein. Bitte mal
An alle Schüler und Studenten mit Informatikproblemen zur Einstimmung lesen.
Und dann erkläre mal was bei dem Quelltext passiert. Was wird dort Schritt für Schritt gemacht, was bewirkt jede einzelne Anweisung die ausgeführt wird, zu dem Zeitpunkt an dem sie ausgeführt wird, und macht das jeweils Sinn zu diesem Zeitpunkt.
Re: Temporäre Datei mit Dateiverzeichnissen erstellen
Verfasst: Mittwoch 7. November 2012, 19:31
von BlackJack
@marlened a.k.a. ernestovaya : Du könntest auch einfach in deiner Frage zum gleichen Thema letzte Woche (
http://www.python-forum.de/viewtopic.php?f=1&t=30351) weitermachen und dort zum Beispiel auf die Rückfragen eingehen.
Es bringt auch nicht wirklich etwas sich diesmal mit einem weiblichen Vornamen als Benutzernamen anzumelden, das erhöht die Chancen Hausaufgabenlösungen zu erbetteln nicht wirklich.
