MENU

Python学習 〜動画ファイル整理ツールを自作してみる〜③

目次

for文と文字列操作でフォルダ名を判定する

前回は、Pythonのpathlibを使って素材フォルダ(Sozai)の中身を読み込み、フォルダ一覧を取得するところまで実装しました。

今回は、取得したフォルダ名から先頭の数字を取り出し、自動振り分けの判定を行う部分を作っていきます。

今回の目標

今回の目標は、フォルダ名の先頭文字を取得することです。

例えば、

1旅行動画
2不要動画
3永久保存動画

というフォルダがあった場合、

  • 1 → 保存フォルダへ移動
  • 2 → 削除フォルダへ移動
  • 3 → 保存+バックアップ

という処理を行うために、まずは先頭の数字を判定できるようにします。

素材フォルダを1つずつ処理する

まずは前回学習したiterdir()を利用して、素材フォルダの中を1つずつ確認します。

from pathlib import Path

base = Path('/Volumes/Doga')
sozai = base / 'Sozai'

for folder in sozai.iterdir():
    print(folder.name)

実行すると、

1旅行動画
2不要動画
3永久保存動画

のように、フォルダ名だけを表示できます。

フォルダだけを処理する

素材フォルダの中には、ファイルが混ざっている可能性もあります。

そのため、フォルダだけを処理するようにします。

for folder in sozai.iterdir():

    if not folder.is_dir():
        continue

    print(folder.name)

continueを使うことで、フォルダ以外は無視して次の処理に進めます。

フォルダ名の先頭文字を取得する

Pythonでは、文字列の先頭文字は[0]で取得できます。

name = '1旅行動画'

print(name[0])

実行結果は、

1

となります。

これを実際のプログラムに組み込みます。

for folder in sozai.iterdir():

    if not folder.is_dir():
        continue

    head = folder.name[0]

    print(head)

実行すると、

1
2
3

のように表示されます。

先頭の番号を削除する

最終的には、移動後のフォルダ名から先頭の番号を削除したいので、その準備もしておきます。

for folder in sozai.iterdir():

    if not folder.is_dir():
        continue

    head = folder.name[0]
    new_name = folder.name[1:]

    print(head, new_name)

実行結果は、

1 旅行動画
2 不要動画
3 永久保存動画

となります。

これで、

  • 振り分けに使う番号
  • 実際に保存するフォルダ名

の両方を取得できるようになりました。

今回学んだこと

今回学んだ内容は以下の通りです。

  • for文でフォルダを1つずつ処理する方法
  • continueの使い方
  • folder.nameでファイル名を取得する方法
  • [0]で先頭文字を取得する方法
  • [1:]で先頭文字以外を取得する方法

ここまでできれば、いよいよ自動振り分け処理を実装できます。

次回予告

次回は、if文を利用して、

  • 1 → Hozonへ移動
  • 2 → Deleteへ移動
  • 3 → Hozonへ移動+Backupへコピー

という、自動振り分け処理を実装していきます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

FIREを目指しながら、投資・プログラミング・家庭菜園・資格勉強に取り組んでいます。試行錯誤しながら積み上げる日々を記録するブログです。

コメント

コメントする

目次