Python 大量のファイル名を一括で変更する

 本記事では、下図のように多数のファイル名をrename(リネーム)する雛形コードを載せました。

 上の例では、各ファイル名にある「スライド」を「slide_」にして、ファイル番号「1, 2, …, 10…」を「01, 02, …, 10…」のように2桁の0埋めに、ファイル名を変更します。

■本プログラム

#!/usr/bin/env python
# coding: utf-8

# In[1]:


import os
import glob, re

# 指定したフォルダ内にある複数の.pngファイルのパスをリストで取得する
file_path_list = glob.glob('./プレゼンテーション1/*.png')
file_path_list


# In[2]:


for i, file_path in enumerate(file_path_list):
    print('file_path ->', file_path)
    
    # フォルダパスの取得
    if i == 0:
        dir_path = os.path.dirname(file_path)
    
    # ファイル名の取得
    file_name = os.path.basename(file_path)
    
    # 拡張子なしファイル名と拡張子の取得
    file_name_wo_ext, ext = os.path.splitext(file_name)
    
    # ファイル名にあるファイル番号を取得
    file_no = int(re.sub(r'\D', '', file_name))
    
    # 新しいファイル名
    new_file_name = 'slide_' + '{0:02d}'.format(file_no) + ext
    
    # 新しいファイルパス
    new_file_path = os.path.join(dir_path, new_file_name)
    print('new_file_path ->', new_file_path)
    
    # ファイル名をリネームする
    os.rename(file_path, new_file_path)

以上

<広告>