Seite 1 von 1
in os.path mehrere Dateien öffnen
Verfasst: Sonntag 2. Juli 2017, 17:31
von gahleitner
Hallo!
Mit folgenden Zeilen habe ich einen Ordnerdialog, wo ich eine datei nach der anderen aussuchen kann.
Code: Alles auswählen
filename_left = filedialog.askopenfilename(defaultextension="jpg", filetypes=[("jpg-Dateien", '.jpg'), ("Alle Dateien", '.*')], title="Laden...")
name_left = os.path.basename(filename_left)
Wie kann ich mehrere Dateien (mit STRG oder alle mit STRG+A) auswählen? ist dies möglich?
Tschüss
Gerhard
Re: in os.path mehrere Dateien öffnen
Verfasst: Sonntag 2. Juli 2017, 17:38
von BlackJack
@gahleitner: Schau mal was für Funktionen das `tkinter.filedialog`-Modul noch so bietet.
Re: in os.path mehrere Dateien öffnen
Verfasst: Dienstag 4. Juli 2017, 20:32
von gahleitner
Hallo!
Vielen Dank. Aber irgedwie komme ich nicht dahinter wie ich diese mehrere dateien auch in eine Listbox übernehmen kann. Hier noch der Code, der schon funktioniert - aber sobald ich den wert multiple auf True setze, funktioniert es nicht mehr.
Code: Alles auswählen
def loadFile():
global dateiname_left,a_left
filename_left = filedialog.askopenfilename(multiple=False,initialdir="Z:\Daten Gahleitner Gerhard\Fotos",defaultextension="jpg", filetypes=[("jpg-Dateien", '.jpg'), ("Alle Dateien", '.*')], title="Laden...")
name_left = os.path.basename(filename_left)
dateiname_left=name_left[:int(len(name_left)-4)]
a_left.append(dateiname_left)
listbox_left.delete(0,END)
print(a_left)
for dateiname_left in a_left:
listbox_left.insert(END, dateiname_left)
button_load_files = Button(root, text = "Dateien laden", command = loadFile)
button_load_files.grid(row=0,column=0,sticky=W )
frame_left.grid()
Re: in os.path mehrere Dateien öffnen
Verfasst: Dienstag 4. Juli 2017, 21:58
von BlackJack
@gahleitner: Was heisst „funktioniert nicht mehr“?
Re: in os.path mehrere Dateien öffnen
Verfasst: Freitag 7. Juli 2017, 19:29
von gahleitner
Hallo!
Wenn multiple auf False steht, kann ich eine Datei in die Listbox übernehmen. Wenn ich aber multiple auf True setze, kann ich weder eine noch mehrere Dateien in die Listbox übernehmen - mein Ziel wäre es, eine oder mehrere Dateien (in einem Rutsch) in die Listbox übernehmen zu können. Geht das überhaupt? Meiner Meinung müsste ich erreichen, die Liste a_left um mehrere Dateien (dateiname_left) zu erweitern, oder liege ich da falsch?
Re: in os.path mehrere Dateien öffnen
Verfasst: Freitag 7. Juli 2017, 20:35
von BlackJack
@gahleitner: Was heisst „kann ich weder eine noch mehrere Dateien in die Listbox übernehmen“? Falls Du das nicht von einer Konsole aus startest, solltest Du das mal tun.
Re: in os.path mehrere Dateien öffnen
Verfasst: Samstag 8. Juli 2017, 19:34
von gahleitner
Hallo!
Ich machte es immer in der Eingabeaufforderung mit python, dann Pfad angeben. So hat auch immer alles funktioniert.
Wenn multiple auf False steht, kann ich auch mehrere Dateien in die Listbox einfügen - aber nur einzeln, eine nach der anderen. Ich möchte aber gerne mehrere Dateien aus dem Filedialog auf einmal in die Listbox einfügen. Ist das möglich?
tschüss
Gerhard
Re: in os.path mehrere Dateien öffnen
Verfasst: Samstag 8. Juli 2017, 19:45
von BlackJack
@gahleitner: Ich meinte das GUI-Programm: Das musst Du so starten das Du auch die Ausnahmen sehen kannst die Dein Code auslöst und ausgibt.
Und ja, das ist natürlich möglich mehr als eine Datei auszuwählen. Sonst wäre die Option ja sinnlos.

Re: in os.path mehrere Dateien öffnen
Verfasst: Sonntag 9. Juli 2017, 00:48
von gahleitner
Hallo!
Nun ja, ich weiß nicht so genau, was du meinst bzw. wie du das meinst.
wenn ich eine Datei eingebe, bekomme ich folgende Fehlermeldung: cannot concatenate 'str' and 'tuple' objects
bei mehreren Dateien folgende: 'tuple' object has no attribut 'replace'; jeweils in Zeile: name_left=os.path.basename(filename_left).
Leider bin ich noch ein ziemlicher Anfänger - tut mir leid.
Re: in os.path mehrere Dateien öffnen
Verfasst: Sonntag 9. Juli 2017, 07:40
von BlackJack
@gahleitner: Schau Dir die Zeile mal an und dann vergleiche das was diese Funktion als Argument erwartet und was Du tatsächlich übergibst.