Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Tkinterのaskopenfile()関数でファイルを選択して読み込む方法

Pythonプログラムで使用するファイルのパスをハードコーディングする代わりに、GUIを使ってユーザー自身にフォルダ構造をブラウズさせ、目的のファイルを選択してもらうことができます。これはtkinterモジュールを利用することで実現でき、キャンバス(ウィンドウ)を定義し、その上にファイルを参照するためのボタンを配置します。

以下のプログラムでは、ファイルを開くための関数を定義しています。ここではテキストファイルを開くことに限定しています。Pythonはテキストファイルの内容を読み取り、非常に読みやすい形で出力できるためです。.txtや.csvなど、テキストベースのファイルであればどのようなものでも読み込むことが可能です。

サンプルコード

from tkinter import *
from tkinter import filedialog
base = Tk()
# キャンバスを作成
base.geometry('150x150')
# ファイルを開くための関数
def file_opener():
    input = filedialog.askopenfile(initialdir="/")
    print(input)
    for i in input:
        print(i)
# ボタンのラベル
x = Button(base, text ='Select a .txt/.csv file', command = lambda:file_opener())
x.pack()
mainloop()

このコードを実行すると、以下のようなダイアログボックスが表示され、ファイルをブラウズして選択できるようになります。

Python Tkinterのaskopenfile()関数でファイルを選択して読み込む方法

次に、任意のファイルを選択します。

Python Tkinterのaskopenfile()関数でファイルを選択して読み込む方法

実行結果

上記のコードを実行すると、以下のような結果が出力されます。

<_io.TextIOWrapper name='C:/Users/Pradeep/Documents/welcome.txt' mode='r' encoding='cp1252'>
Hello There !
Welcome to Tutorialspoint!

このように、askopenfile()関数を使用すると、選択されたファイルのファイルオブジェクトが返され、通常のファイル読み込みと同じように内容を1行ずつ処理することができます。initialdir引数を指定することで、ダイアログが最初に開くディレクトリも制御可能です。

  1. Pythonのintersection()関数とは?集合の共通要素(積集合)を求める方法

    この記事では、Pythonのセット(集合)に対して実行できるintersection()関数について詳しく解説します。数学における「積集合(インターセクション)」とは、2つの集合から共通する要素を見つけ出すことを指します。構文<セット名>.intersection(<セットa1>, <セットa2>, …)戻り値引数として渡されたすべての集合に共通する要素(積集合)が、新しいセットとして返されます。使用例set_1 = {t,u,t,o,r,i,a,l} set_2 = {p,o,i,n,t} set_3 = {t,u,t} # 2つの集合の積集合 print

  2. Pythonのファイルオブジェクトとは?open関数によるファイル操作の基本を徹底解説

    Pythonでは、ファイルを読み書きする際に特別なライブラリをインポートする必要はありません。ファイル操作は言語にネイティブに組み込まれているためです。 まず最初に行うのは、組み込み関数 open() を使ってファイルオブジェクトを取得することです。open() 関数はファイルを開き、ファイルオブジェクトを返します。このファイルオブジェクトには、開いたファイルから情報を取得したり、内容を操作したりするためのメソッドや属性が含まれています。 ファイルとは何か? ファイル操作を行う前に、「ファイルとは何か」を理解しておきましょう。ファイルとは、関連する情報を保存するためにディスク上に確保された「名