ビジネスパーソン・ガジェット置場 empty lot for business

営業や仕事、それに伴う生活を便利に楽にするツール、ガジェットを作ります。既にあるツールも自分用にカスタマイズ。

pythonでファイル一覧作成 【with Automater】

業務や学習をしていると日々、ファイルやフォルダが増えてい来ますよね。ただ、だんだん何を作って、どのフォルダに入れたのかわからなくなってきます。そんな日々、増えるフォルダとファイルを一日一回定期実行で確認し、一覧表に追加していくガジェットです。フォルダでわけ、さらにファイルは拡張子ごとに分けて管理します。

例えばこんな状況で

今回のガジェットは、日々、様々なフォルダを作っていくためどんどんフォルダもファイルも増えていく。どんなファイルを作ったのか確認するのにエクセルとかで一覧になってたら楽だな。そして勝手に毎日一覧に追加してくれたらもっと楽だな。という思いから作ったものです。

 

 

このガジェットでできることはこちら

  • 一日一回自動的にフォルダを確認し新たに作成されたフォルダやファイルを分類し一覧表に追加します。
  • フォルダ内を拡張子ごとに分類します。
  • 分類したものをcsvファイルで書き出します。

 

評価(自己)

役立ち度  ★★★★(良し)
効率化   ★★★★(良し)
ミス防止  ★★★(平均)
楽しさ   ★★★(平均)
操作    ★★★★(良し)

 

実行環境

使用環境    os
使用言語    python
使用ライブラリ  os、pandas、glob

 

コード

import os
import pandas as pd
from glob import glob


def main():
    data = pd.DataFrame()
    foldas = []
    for f in os.listdir():
        if os.path.isdir(f):
            foldas.append(f)

    extentions = ['py', 'json', 'csv', 'xlsx', 'txt', 'ipynb']
    _df = {}

    for folda in foldas:
        for i in extentions:
            _df[i] = glob(f'{folda}/*.{i}')
            _df[i] = [file.replace(f'{folda}/', '') for file in _df[i]]
            _df[i] = '/'.join(_df[i])
        _data = pd.DataFrame([_df], index=[f'{folda}'])
        data = pd.concat([data, _data])

    data.to_csv('ファイル一覧.csv')
    

if __name__ == '__main__':
    main()