folder Tahribat.com Forumları
linefolder Python
linefolder Python'da Tkinter İçerisinde Görüntülenen Listbox Dosyalarını Açma



Python'da Tkinter İçerisinde Görüntülenen Listbox Dosyalarını Açma

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SENAR1ST
    SENAR1ST's avatar
    Kayıt Tarihi: 15/Mayıs/2016
    Erkek

    Merhaba arkadaşlar, bu hafta pythonla ilgili 2. konum olacak ama cidden saatlerce araştırıp çözemediğim meselelerde konu açıyorum.

    Aşağıdaki kod ile bir klasörün içerisindeki dosyaları görebiliyorum. Beceremediğim şeyse şu; listeden bir dosya ismine tıkladığımda dosyayı açması. Şimdiden teşekkürler.

     


    import tkinter as tk
    import os

    tkinter = tk.Tk()
    tkinter.geometry('600x500+600+200')
    adres= os.listdir(r'C:/')

    listbox = tk.Listbox(tkinter)
    listbox.place(relx=.1, rely=.1)

    for item in adres:
    listbox.insert(tk.END, item)

    tkinter.mainloop()
    SENAR1ST tarafından 09/Eyl/19 15:52 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SENAR1ST
    SENAR1ST's avatar
    Kayıt Tarihi: 15/Mayıs/2016
    Erkek

    Tıklayınca açılma olayı için bir yöntem buldum ama şu hatayı alıyorum; 'dosya.xlsx' is not recognized as an internal or external command, operable program or batch file.

     

    Yeni Kod:

    import tkinter as tk
    import os

    tkinter = tk.Tk()
    tkinter.geometry('600x500+600+200')
    adres= os.listdir(r'C:/')

    listbox = tk.Listbox(tkinter)
    listbox.place(relx=.1, rely=.1)

    for item in adres:
    listbox.insert(tk.END, item)

    def opensystem(event):
    x = listbox.curselection()[0]
    os.system(listbox.get(x))
    listbox.bind("", opensystem)

    tkinter.mainloop()

     

     

     

    SENAR1ST tarafından 09/Eyl/19 19:00 tarihinde düzenlenmiştir
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Caliber
    Caliber's avatar
    Kayıt Tarihi: 18/Aralık/2009
    Homo

    subprocess kullanmayı denedin mi? kodu düzenleme fırsatım yok şu an fikir vermek istedim.

    fonksiyon tanımla subprocess path i Explorer ile açsın.


    Tedbirsiz abdest bozmaya oturan, domala domala taş arar.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yolbulucu
    yolbulucu's avatar
    Kayıt Tarihi: 06/Nisan/2007
    Homo
    SENAR1ST bunu yazdı

    Tıklayınca açılma olayı için bir yöntem buldum ama şu hatayı alıyorum; 'dosya.xlsx' is not recognized as an internal or external command, operable program or batch file.

     

    Yeni Kod:

    import tkinter as tk
    import os

    tkinter = tk.Tk()
    tkinter.geometry('600x500+600+200')
    adres= os.listdir(r'C:/')

    listbox = tk.Listbox(tkinter)
    listbox.place(relx=.1, rely=.1)

    for item in adres:
    listbox.insert(tk.END, item)

    def opensystem(event):
    x = listbox.curselection()[0]
    os.system(listbox.get(x))
    listbox.bind("", opensystem)

    tkinter.mainloop()

     

     

     

    "excel.exe c:/x/y/z/dosya.xlsx" yapman lazim muhtemelen.

     


    29.99cm, titanyum kaplamalı, çift damarlı, su ve yağ soğutmalı.
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    YekteranBaymedir
    YekteranBaymedir's avatar
    Kayıt Tarihi: 10/Temmuz/2009
    Homo
    # coding: utf-8
    import tkinter as tk
    import subprocess
    import os
    
    def change_dir(dir):
    	global current_dir
    	L = os.listdir(dir)
    	current_dir = dir
    	listbox.delete(0, tk.END)
    	listbox.insert(tk.END, '..')
    	for item in L:
    		listbox.insert(tk.END, item)
    
    current_dir = 'C:/'
    
    tkinter = tk.Tk()
    tkinter.geometry('600x500+600+200')
    
    listbox = tk.Listbox(tkinter)
    listbox.place(relx=.1, rely=.1)
    
    change_dir(current_dir)
    
    def opensystem(event):
    	global current_dir
    	x = listbox.curselection()[0]
    	x = listbox.get(x)
    	x = os.path.join(current_dir, x)
    	if os.path.isdir(x):
    		change_dir(x)
    	else:
    		subprocess.Popen(['start', x], shell=True)
    	
    listbox.bind("<<ListboxSelect>>", opensystem)
    tkinter.mainloop()
    

     

    YekteranBaymedir tarafından 10/Eyl/19 08:16 tarihinde düzenlenmiştir
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick6
    0x656e
    0x656e's avatar
    Kayıt Tarihi: 19/Mayıs/2012
    Homo

    Eğer excel dosyası açmak istiyorsan Win32API kullanmalısın hocam. Her dosya tipine göre tabi ki farklı tanımlar vs yapmalısın öyle her dosyayı açayım diye bir şey olmayacaktır.

    https://stackoverflow.com/questions/40062841/multiprocessing-use-win32-api-to-modify-excel-cells-from-python

  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    SENAR1ST
    SENAR1ST's avatar
    Kayıt Tarihi: 15/Mayıs/2016
    Erkek
    YekteranBaymedir bunu yazdı
    # coding: utf-8
    import tkinter as tk
    import subprocess
    import os
    
    def change_dir(dir):
    	global current_dir
    	L = os.listdir(dir)
    	current_dir = dir
    	listbox.delete(0, tk.END)
    	listbox.insert(tk.END, '..')
    	for item in L:
    		listbox.insert(tk.END, item)
    
    current_dir = 'C:/'
    
    tkinter = tk.Tk()
    tkinter.geometry('600x500+600+200')
    
    listbox = tk.Listbox(tkinter)
    listbox.place(relx=.1, rely=.1)
    
    change_dir(current_dir)
    
    def opensystem(event):
    	global current_dir
    	x = listbox.curselection()[0]
    	x = listbox.get(x)
    	x = os.path.join(current_dir, x)
    	if os.path.isdir(x):
    		change_dir(x)
    	else:
    		subprocess.Popen(['start', x], shell=True)
    	
    listbox.bind("<>", opensystem)
    tkinter.mainloop()
    

     

    Hocam efsanesin ya. Geçen konuda da senin yardımınla halletmiştim. Çok teşekkürler.