Seite 1 von 1

Eigener Dateiexplorer aber hab Probleme

Verfasst: Freitag 12. September 2014, 20:21
von tomtombusiness
Hi Leutz

Und zwar habe ich vor mir ein eigenen dateiexplorer zu coden. Aber mein ansatz is zum kotzen.

Hab ihr irgendwie nen ansatz oder ggf sogar nen fertiges script?

Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Freitag 12. September 2014, 20:50
von BlackJack
@tomtombusiness: Was ist denn Dein Ansatz? Warum willst Du einen eigenen Programmieren? Bist Du mit den vorhandenen nicht zufrieden? Warum nicht? Und ist dass dann nicht schon die Antwort auf die Ansatzfrage?

Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Freitag 12. September 2014, 21:18
von tomtombusiness
Ich bin zurzeit ein Autoradio mit der Hmbere am basteln.
Ich habe ein Fenster und links ne listbox mit den quellen und wenn ich zb usbstck auswähle soll rechts der rest stattfinden.

In der logig hab ich halt immer gefrüft ob der eintrag ein ordner is oder datei der haken an der sache is das ich auch zurück gehen will und so und da haperts.

Ich speichere den aktuellen pfad immer in eine datei und lesen den aus und hab dadurch versucht die navigation ans laufen zu bringen aber es muss doch eine einfachere möglichkeit geben

Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Freitag 12. September 2014, 22:07
von pixewakb
Du kannst auf den aktuellen Pfad z. B. mit os.getcwd() zugreifen. Meine Möglichkeit ist wahrscheinlich nicht optimal, aber wie im nachfolgenden Beispiel würde ich es erst einmal anpacken:

Code: Alles auswählen

import os

pfad = os.path.abspath(".").split("\\")

print("\\".join(pfad[:-1]))


Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Freitag 12. September 2014, 22:45
von BlackJack
@pixewakb: Schönes Beispiel warum man bei Pfaden nicht mit Zeichenkettenoperationen arbeiten sollte sondern mit den Funktionen aus `os.path`. Deine Operationen werden auf dem RaspberryPi nämlich nicht das gewünschte Ergebnis liefern.

@tomtombusiness: Mir ist aus der Beschreibung immer noch nicht klar was eigentlich das Problem ist. Geht es hier darum eine Verzeichnisebene höher zu gehen? Dafür gibt es die Funktionen in `os.path()` um eine Pfadkomponente abzutrennen. Oder reden wir beim „zurück gehen” von einer Verlaufsfunktion bei der man zu vorher besuchten Verzeichnissen zurückkehren kann? Die meisten Dateiexplorer können ja beides.

Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Freitag 12. September 2014, 23:14
von pixewakb
Manchmal sucht man hier im Python-Forum den "Like"-Button :wink:

Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Freitag 12. September 2014, 23:25
von BlackJack
Den kann man sich mit Bordmitteln ganz einfach selber basteln:

Code: Alles auswählen

import Tkinter as tk


def main():
    root = tk.Tk()
    tk.Button(root, text='Like').pack()
    root.mainloop()


if __name__ == '__main__':
    main()
SCNR. ;-)

Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Samstag 13. September 2014, 11:10
von tomtombusiness
Ich suche halt im prinzip ansatzpunkte. Wie schon erwähnt klappt meine dee net bzw sie war ziemlich umständlich


ich suche halt kein verlauf sondern ich will halt später nur eine ebene wieder höher.

Was ich eig von euch wollte waren ansatzpunkte zb von nützlichen funktionen. Zwar hab ich 2 Bücher über phyto intus aber man lernt immer wieder dazu :-D

Re: Eigener Dateiexplorer aber hab Probleme

Verfasst: Samstag 13. September 2014, 12:10
von Hyperion
tomtombusiness hat geschrieben: Ich speichere den aktuellen pfad immer in eine datei und lesen den aus und hab dadurch versucht die navigation ans laufen zu bringen aber es muss doch eine einfachere möglichkeit geben
Merke Dir doch den Verlauf der Navigation in einer Datenstruktur, z.B. in einer Liste, die Du wie einen Stack nutzt. Gehst Du eine Ebene im Dateisystem in die Tiefe, so packst Du diese mittels ``append`` an die Liste. Wählst Du den "zurück"-Weg, so entfernst Du den obersten Eintrag mittels ``pop``:

Code: Alles auswählen

path = ["/", "home", "nelson", "Musik"]
# Pfad nach "unten" gehen
path.append("Die drei Fragezeichen")
print(path)
> ['/', 'home', 'nelson', 'Musik', 'Die drei Fragezeichen']

# Zurück nach "oben" gehen
path.pop()
> 'Die drei Fragezeichen'

print(path)
> ['/', 'home', 'nelson', 'Musik']
Den richten Pfad für das Auslesen aus dem Dateisystem kannst Du Dir ja dann mittels ``os.path.join`` aus der *gesamten* Liste zusammenbauen:

Code: Alles auswählen

import os
print(os.path.join(*path))
> '/home/nelson/Musik'