最近は ChatGPT や Copilot を使ったプログラミングが増え、ファイルの中身をひとつひとつコピー&ペーストする手間が意外と大きいことに気づきました。
そこで、ディレクトリ以下の構成とファイル内容をまとめて TXT 出力できる Python3 製ツール txt_exporter.py を作成しました。
1. できること
- フォルダ構成をツリー形式で表示
- 指定拡張子のファイルを再帰的に収集(指定がなければすべてのファイル)
- ファイル名に続けて各ファイルの中身を TXT に書き出し
レポート作成やコードレビュー、AI へのプレ入力データ作成などに便利です。
最新のサンプルコード全文はこちらの Gistをご覧ください。
2. ツールの特徴
2.1 フォルダ構成をツリー表示
-t
または --tree
を指定すると、ディレクトリ以下をツリー形式で先頭に出力します。
project-root/ index.html src/ app.js utils.js
2.2 対象拡張子を自由に指定可能
新たに -x
/--extensions
オプションを追加しました。拡張子フィルタを柔軟に指定できます。
- 指定なし
すべてのファイルを対象に再帰探索 - 指定あり
引数で列挙した拡張子のみを対象(例:js html py
)。ドット.
の有無は問わず、大/小文字を区別しません。
使い方例
# カレント以下のすべてのファイルを出力 $ python3 txt_exporter.py -o all.txt # .js と .html ファイルだけを出力 $ python3 txt_exporter.py -x js html -o web.txt # .py ファイルだけを出力(ドット付きでも可) $ python3 txt_exporter.py --extensions .py -o scripts.txt
2.3 除外ディレクトリの指定
-e
または --exclude
を複数回指定すると、再帰的にスキップしたいフォルダを除外できます。
例:-e node_modules -e .git
2.4 簡単なCLI操作
$ python3 txt_exporter.py -d myproject -t -e node_modules -x js html -o report.txt
上記コマンドで myproject
以下を解析し、report.txt
にまとめて出力します。
3. インストール&セットアップ
- Python3 を用意
macOS/Linux では標準インストール済みが多く、Windows は公式サイトからダウンロード、インストールしてください。 - Gist からコードを取得
Gist.GitHubからクローンします。$ git clone https://gist.github.com/nanosize/aa2cbb7cd9a5c09bb4b3a71f98853870.git
$ cd aa2cbb7cd9a5c09bb4b3a71f98853870 - 実行権限を付与(UNIX 系のみ)
$ chmod +x txt_exporter.py
4. 使い方詳細
usage: txt_exporter.py [-h] [-d DIRECTORY] [-t] [-e EXCLUDE] [-x EXTENSIONS [EXTENSIONS ...]] [-o OUTPUT]
-d, --directory
対象フォルダ(デフォルトはカレントディレクトリ)-t, --tree
フォルダ構成を先頭にツリー表示-e, --exclude
除外フォルダ名(複数指定可)-x, --extensions
対象拡張子(例:js html py
)。省略時はすべてのファイルを対象-o, --output
出力ファイル名(デフォルト:output.txt
)
4.1 ツリーをテキストの先頭に表示
$ python3 txt_exporter.py -t
4.2 ファイル内容のみ出力
$ python3 txt_exporter.py -o files.txt
4.3 拡張子と除外フォルダを組み合わせ
$ python3 txt_exporter.py -t -e node_modules -x js html -o project_report.txt
5. 出力例
myproject/ index.html src/ main.js helper.js index.html … src/helper.js export function add(a, b) { return a + b; }
6. まとめ
「txt_exporter.py」はドキュメント生成やコードレビュー、AI へのプレ入力データ作成などの用途で使用できるツールです。ぜひ試してみてください!