Pythonツール tkinter ドラッグアンドドロップ(単一ファイル) 最初のPython

PythonのドラッグアンドドロップでテキストファイルをPythonファイルやJSONファイルに変換するアプリ

概要

Python初心者から上級者まで幅広く使える便利なツール「txt-json-pyくん.py」をご紹介します。このツールは、テキストファイルをドラッグアンドドロップで簡単にPythonファイルやJSONファイルに変換できるGUIアプリケーションです。この記事では、具体的な使用方法や必要なPythonライブラリのインストール方法などを詳しく解説します。

使用例

このアプリケーションは、例えば以下のようなシーンで役立ちます:

  • テキストファイルに保存されたスクリプトを簡単にPythonファイルとして実行可能にしたい場合
  • JSONファイルとしてデータを保存・管理したい場合
  • テキストエディタで書いたメモを他の形式に変換したい場合

必要なPythonライブラリとインストール方法

このツールを実行するためには、tkintertkinterdnd2というPythonライブラリが必要です。以下のコマンドで簡単にインストールできます。

pip install tkinterdnd2

tkinterはPython標準ライブラリの一部なので、通常は追加インストール不要です。ただし、環境によってはインストールが必要な場合があります。

使用手順

  1. プログラムを準備する:
    • 以下のコードをメモ帳などのテキストエディタにコピーして、「txt-json-pyくん.py」という名前で保存してください。
  2. プログラムを実行する:
    • コマンドラインやターミナルを開き、保存したファイルのディレクトリに移動して次のコマンドを実行します。
    python txt-json-pyくん.py
  3. GUIを使う:
    • アプリケーションが起動したら、変換したいテキストファイルをウィンドウ内にドラッグアンドドロップします。
    • プルダウンメニューから変換後のファイル形式(.pyまたは.json)を選択します。
    • ドロップしたファイルが自動的に指定した形式に変換され、同じディレクトリに保存されます。

注意点

  • ドラッグアンドドロップするファイルは必ず.txt形式である必要があります。その他のファイル形式はサポートされていません。
  • 変換後のファイルは元のファイルと同じディレクトリに保存されます。
  • 既存のファイルが同名の場合、上書きされる可能性があるので注意してください。

プログラム

下記のコードをメモ帳などに丸々コピーして「txt-json-pyくん.py」という名前で保存してください。

import tkinter as tk
from tkinter import filedialog, messagebox
from tkinterdnd2 import DND_FILES, TkinterDnD
import shutil

class TxtConverter(TkinterDnD.Tk):
def __init__(self):
super().__init__()

self.title("TXT Converter")
self.geometry("400x200")

self.label = tk.Label(self, text="Drag and Drop a .txt file here", pady=20)
self.label.pack(expand=True)

self.option_var = tk.StringVar(value=".py")
self.option_menu = tk.OptionMenu(self, self.option_var, ".py", ".json")
self.option_menu.pack(expand=True)

self.drop_area = tk.Label(self, text="Drop Here", bg="lightgrey", pady=20, relief="sunken")
self.drop_area.pack(expand=True, fill=tk.BOTH)

self.drop_area.drop_target_register(DND_FILES)
self.drop_area.dnd_bind('<<Drop>>', self.drop)

def drop(self, event):
file_path = self.tk.splitlist(event.data)[0]
if file_path.endswith(".txt"):
self.convert_file(file_path)
else:
messagebox.showerror("Invalid file", "Please drop a .txt file")

def convert_file(self, file_path):
selected_extension = self.option_var.get()
new_file_path = file_path.replace(".txt", selected_extension)
shutil.copy(file_path, new_file_path)
messagebox.showinfo("Conversion complete", f"{new_file_path} has been created")

if __name__ == "__main__":
app = TxtConverter()
app.mainloop()

あるいは、下のテキストファイルをダウンロードし、「.txt」を「.py」に変えることでそのまま使えます。

まとめ

「txt-json-pyくん.py」は、テキストファイルを簡単にPythonファイルやJSONファイルに変換できる便利なツールです。ドラッグアンドドロップで操作できるため、誰でも簡単に使用することができます。必要なライブラリをインストールして、ぜひ活用してみてください。

-Pythonツール, tkinter, ドラッグアンドドロップ(単一ファイル), 最初のPython