フォルダビューアの作り方 【Python, tkinter】

tkinter

Python の tkinter でフォルダ内のファイルを参照するスクリプトをまとめました。クリックすると、ファイルを開く等の処理を入れられると思います。
以下の環境で動作確認をしています。

環境:Windows 10, Python 3, Anaconda

使い方

① デスクトップ等にフォルダを作り、folder_viewer1.py 等のテキストファイルを作成してください。
② 上記のテキストファイルに下記のサンプルスクリプトをコピー&ペーストで貼りつけて、保存してください。
③ ①のフォルダ内に “data1” というフォルダを作成し、中にテキストファイル等のファイルを入れてください。
④ コマンドプロンプト又は Anaconda のプロンプトから、folder_viewer1.py を実行してください。
⑤ フォルダ data1 内のファイルが参照されるようになると思います。ファイルをクリックしてみてください。ファイル名が表示されます。
⑥ うまく動いたら、ファイル名を読み込んだ後の処理を加えてみてください。たとえば show_file1( self ) としている関数内でファイル名 file1 が取得できています。file1 のパスは path1 で取得できていますので、path1 + file1 とすれば、選択したファイルのフルパスが取得できます。
テキストファイル、csv ファイル、jpg ファイルなどを読み込んで表示させるなど、コピー&ペーストの感覚で、好きな処理を追加していくことができると思います。

まとめ

フォルダ内を参照して、フォルダ内のファイルを参照するスクリプトについてまとめました。必要最小限のプログラムとしていますので、コピー&ペーストで流用してみてください。

関連リンク
・ バイナリ・ビューア 【Python】
・ 【Python】 表を表示する方法 サンプルコード 【tkinter】

サンプルスクリプト

import os 
import glob 
import tkinter as tk1

def show_file1( self ): 
    n1 = listbox1.curselection() 
    file1 = listbox1.get( n1[0] ) 
    label1["text"] = file1 
    return 

frame1 = tk1.Tk()
frame1.title( 'folder_viewer v0.1' ) 
frame1.geometry( "300x200+100+100" ) 

label1 = tk1.Label( frame1, bg="white", anchor="w" ) 
label1.place( x=10, y=5, width=280 ) 

listbox1 = tk1.Listbox( frame1, selectmode = 'single' )
listbox1.place( x=10, y=30, width=260, height=150 ) 

scrollbar1 = tk1.Scrollbar(frame1, orient = 'v', command = listbox1.yview)
scrollbar1.place( x=270, y=30, height=150 ) 

listbox1.configure( yscrollcommand = scrollbar1.set ) 

path1 = os.path.dirname(__file__) + "\\data1\\"    
list0 = glob.glob( path1 + "*.*" ) 

for list1 in sorted( list0 ): 
    list2 = os.path.split( list1 )[1] 
    listbox1.insert('end', list2 ) 

listbox1.bind('<<listboxselect>>', show_file1)

frame1.mainloop()

タイトルとURLをコピーしました