Seite 1 von 1
Datei-Pfad zum Ursprung zurückverfolgen
Verfasst: Dienstag 20. April 2010, 10:16
von py-mule
Hallo,
wie kann ich den Pfad eines files zurückverfolgen bis hin zum Laufwerk z.B. c: in welchem ich eine Datei, z.B. test.txt vermute.
unbekannt ist also der Weg und vielleicht sogar der Ursprung:
... / ... / ..../test.txt
Mit
bekomme ich merkwürdigerweise einen Pfad über\Dokumente und Einstellungen\ angezeigt, obwohl das zu überprüfende Verzeichnis auf einem USB-Stick liegt.
Ebenso mit
Gruß
py-mule
Re: Datei-Pfad zum Ursprung zurückverfolgen
Verfasst: Dienstag 20. April 2010, 12:27
von jan_schmidt
py-mule hat geschrieben:
wie kann ich den Pfad eines files zurückverfolgen bis hin zum Laufwerk z.B. c: in welchem ich eine Datei, z.B. test.txt vermute.
unbekannt ist also der Weg und vielleicht sogar der Ursprung:
... / ... / ..../test.txt
Wie weißt du dann wo deine Datei liegt, bzw. welche Datei du meinst?
Wird das Skript im selben Verzeichnis ausgeführt, dann ist das klar.
Hast du die Datei geöffnet, dann kennst du den Pfand in der Regel doch auch schon oder?
Oder geht es im Endeffekt darum eine Datei auf deiner Festplatte zu suchen?
Verfasst: Dienstag 20. April 2010, 14:27
von py-mule
Ich habe ein Tupel, in dem lediglich files, also z.B.Test.txt, drin stehen.
Ich möchte den Pfad von der Festplatte bis zum File ermitteln.
Mit einer Suche könnte es auch funktionieren. Wie könnte man das hinbekommen?
Verfasst: Dienstag 20. April 2010, 16:17
von BlackJack
@py-mule: Du hast also nur den Dateinamen ohne Pfadangabe? Dann ist die Beschreibung Deines Problems falsch herum -- Du kannst nicht von einer Datei zum Laufwerk, sondern Du musst alle verfügbaren Laufwerke nach dem Dateinamen durchsuchen. Was zwei Probleme hat: Es kann sehr lange dauern und es muss nicht eindeutig sein, denn es kann ja mehrere 'Test.txt' auf den Laufwerken geben.
Verfasst: Dienstag 20. April 2010, 16:47
von jan_schmidt
Nur mal so aus Interesse:
Wie sucht man denn vernünftig Dateien mit Python?
Eine Möglichkeit die mir unter Linux einfällt wäre
oder so...
Verfasst: Dienstag 20. April 2010, 17:05
von BlackJack
@jan_schmidt: `os.walk()`, `os.stat()`, `os.path`, `glob`, `fnmatch`, …
Verfasst: Dienstag 20. April 2010, 18:11
von problembär
und 'os.path.walk()'.
Hab' übungshalber auch mal selbst ein primitives 'find' geschrieben:
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding: iso-8859-1 -*-
import os
def myfind(wd):
a = os.listdir(wd)
dirs = []
for i in a:
i = wd + "/" + i
if os.path.isdir(i):
dirs.append(i)
for adir in dirs:
print adir
for afile in os.listdir(adir):
print adir + "/" + afile
print
print
# Recursion needed:
myfind(adir)
myfind(os.getcwd())
Gruß
Verfasst: Mittwoch 21. April 2010, 07:52
von frabron
Das schon genannte os.walk und vor allem os.sep kennst du aber schon, oder? Du nennst es ja und benutzt es dann doch nicht. Und vor allem, wo wird da was gefunden, denn einen Dateinamen kann ich ja nirgends übergeben ...
Oder ist das die Aufgabe für den Threadstarter?