Pythonでフォルダ名やファイル名を一括変更(os.renameとglob)

スポンサーリンク
スポンサーリンク

全てのファイルやフォルダの名前の後ろに文字を加える

import os
dir_path = "./dirname"
dir_list = os.listdir(dir_path)
for i in range(len(dir_list)):
    new_file_name = dir_list[i] + "様"
    os.rename(os.path.join(dir_path,dir_list[i]),os.path.join(dir_path,new_file_name))

ファイル名やフォルダ名から特定の文字だけを変更・削除

import os
import glob

before_word = "様"
after_word = ""

files = glob.glob('*'+ before_word +'*')
for before_file_name in files:
    after_file_name = before_file_name.replace(before_word,after_word)
    os.rename(before_file_name,after_file_name)

Qiitaで教えていただいた方法

解説
.resolve(True):相対パスを絶対パスに変換
.iterdir():ディレクトリ内のファイル・サブディレクトリ一覧を取得
f:f文字列(フォーマット文字列)

# 後ろに文字を加える
after_word = "様"
p = Path("./dirname").resolve(True)
for filepath in p.iterdir():
    filepath.rename(f"{filepath}{after_word}")

# 特定の文字だけを変更・削除
p = Path("./dirname").resolve(True)
before_word = "様"
after_word = ""
for filepath in p.glob(f"*{before_word}*"):
    filepath.rename(str(filepath).replace(before_word, after_word))

ファイル名全ての先頭に数字の連番を追加する方法

import os
import glob
path = "./dirname"
files = glob.glob(path + '/*')
i = 0
for f in files:
    i = i + 1
    os.rename(f,os.path.join(path, str(i) + os.path.basename(f)))
python
スポンサーリンク

コメント

タイトルとURLをコピーしました