Pythonでファイル名を確認して特定の文字がついてなければ追加する

Pythonでファイル名の頭に特定の文字がついてなければ追加する方法です。

作成した背景

仕事で誤って編集してしまうと困るマスタファイルがあったりします。それをローカルにコピーしてから、そのファイルをいじったりするのですが、ファイル名が同じためマスタなのかコピーなのか分からなくなるということが発生しました。

他にも、フォームの見本ファイルを見ながら、自分のファイルを編集しようと思ったら、同じ名前だから開けない…なんてことも発生します。

そこで思いついたのが、自分のローカルにコピーしたファイルの名前は一律頭に特定の文字を付けようということです。

イメージ

例えばローカルファイルにTest.xlsxというファイルがあった時に、これをMyCopy---Test.xlsxに変更します。

Pythonコード

コードはこちらです。このスクリプトファイルと同じパスのフォルダ内のファイルを対象にしています。また、拡張子で、例えばこのスクリプト自身のファイル名を変えないようにといった制御ができるようにしてます。

import glob
import os

### Basic Parameters
script_dir_path = os.getcwd()
prefix = "MyCopy---"


### Excluding extensions
def exclude(arg):
    excluding_words = [".py", ".bat", ".exe", ".ps1"]
    for excluding_word in excluding_words:
        if excluding_word in arg:
            return (True)
    return (False)


files = glob.glob(script_dir_path + "/*")
for file in files:
    basename = os.path.basename(file)
    basename_no_ext = os.path.splitext(basename)[0]
    basename_only_ext = os.path.splitext(basename)[1]

    if prefix in file:
        continue

    if exclude(basename) == True:
        continue

    new_name = prefix + basename
    new_full_path = os.path.join(script_dir_path, new_name)
    os.rename(file, new_full_path)

Python勉強中のため、不要なコードが入っていたりしますが、そこはご容赦ください。

よっさん
  • よっさん
  • 当サイトの管理人。ニューヨークの大学を飛び級で卒業。その後某日系IT企業でグローバル案件に携わる。マレーシアに1.5年赴任した経験を持つ。バイリンガルITエンジニアとしていかに楽に稼ぐか日々考えている。

コメントする

メールアドレスが公開されることはありません。