0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】ディレクトリ構成をタブ区切りで取得

Last updated at Posted at 2021-03-07

ディレクトリ構成を取得

プロジェクト配下の全ファイルを確認するために作成しました。

ディレクトリごとにタブ区切りにしているため、出力したテキストファイルをエクセルにコピー&ペーストすることで列を分けられるようにしました。

空のディレクトリを含まない場合(すべての拡張子)

Python

import glob
import re
from pathlib import Path 

# ホームディレクトリを取得
HOME = Path('~').expanduser() 
SAVE_PATH = str(HOME) + '/Desktop/01_file_path.txt'
print('保存場所:' + SAVE_PATH)

# 現在のディレクトリ配下を取得
files = sorted(glob.glob("**/*.*", recursive=True)) # 空のディレクトリを含まない(すべての拡張子)

print('ファイルパス:\n================================================================')
f = open(SAVE_PATH, 'w', encoding='UTF-8')
for file in files:
    # /を/+タブに変換
    file = file.replace('/', '/\t')
    f.write(file)
    f.write("\n")
    print(file)

f.close()

ツリー構成(例)

├ test1/
│ ├ a.txt
│ ├ b.sql
│ └ test1_1/
│    └ c.md
├ test2/
│ ├ d.txt
│ └ e.py
└ test3/ (空)    

実行結果

タブ区切りで出力

test1/	a.txt
test1/	b.sqlt
test1/	test1_1/	c.md
test2/	d.txt
test2/	e.py

空のディレクトリを含む場合

11行目を以下に変更する
glob("**/*.*")glob("**/*")に変える


files = sorted(glob.glob("**/*", recursive=True)) # 空のディレクトリを含む

ツリー構成

上記と同じ

実行結果

タブ区切りで出力

test1
test1/	a.txt
test1/	b.sqlt
test1/	test1_1
test1/	test1_1/	c.md
test2
test2/	d.txt
test2/	e.py
test3

まとめ

lsコマンド等で取得して、手動で整形していたのをプログラム化しました。
作業時間が10分の1になりました。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?