LoginSignup
4
2

More than 3 years have passed since last update.

Pythonでファイルをフォルダ分けしてみた

Posted at

はじめに

Python初心者が勉強のために、まずはファイル整理からしてみました!
需要があるかは分かりませんが、拡張子 / 年_月の構成でフォルダ分けしてみましたので、備忘もかねて記録に残しておきます。

ソースコード


import shutil
import os
import glob
import datetime
import sys

# 参考サイト
####################################################

# Pythonでファイル・ディレクトリを移動するshutil.move
# https://note.nkmk.me/python-shutil-move/

####################################################

# Pythonでglobモジュールを使う方法【初心者向け】
# https://techacademy.jp/magazine/18928

####################################################

def mv_file(ex):
    df_path = 'bk/' + ex
    os.makedirs(df_path, exist_ok=True)

    # mv_file 関数の引数で指定した拡張子を持つファイルを検索(同フォルダ内)
    for x in glob.glob('*.' + ex):
        print(x)
        # ファイル作成日のタイムスタンプを取得
        dt = datetime.datetime.fromtimestamp(os.path.getctime(x))
        if dt: # 作成日を取得できた場合
            # タイムスタンプから 『年_月』 へフォーマット変換
            fm = dt.strftime('%Y_%m')
            path = df_path + '/' + fm 
        else: # 作成日を取得できなかった場合
            path = df_path + '/others'
        # ディレクトリを生成(既にあった場合は無視される)
        os.makedirs(path, exist_ok=True)
        # ファイルを『path』へ移動する
        new_path = shutil.move(x, path)

# 以下、関数実行
mv_file('pdf')
mv_file('zip')
mv_file('jpg')
mv_file('png')
mv_file('xls')
mv_file('xlsx')
mv_file('xlsm')
mv_file('doc')
mv_file('docx')
mv_file('ppt')
mv_file('pptx')
mv_file('csv')

# 動作確認のため、Enterキーが押されるまで待機させる
input("Press Enter to continue...")

最後に

命名規則やエラー防止等、作りこみができていない箇所が多々ありますので、もしソースを流用される場合は、破損しても問題のないファイルで動作確認してからご利用下さい!

4
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
4
2