はじめに
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...")
最後に
命名規則やエラー防止等、作りこみができていない箇所が多々ありますので、もしソースを流用される場合は、破損しても問題のないファイルで動作確認してからご利用下さい!