【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

公開日: : Python, 自動化

スポンサーリンク

はじめに

タイトルどおりなのですが、指定フォルダ内のファイルのファイル名にあるカッコつき数字、例えば(1)や(2)、(3)…といったものですが、それを一度に消すスクリプトをPython3で作成しましたので紹介します。

具体的には例えば「test(2).txt」といったファイル名があったら「test.txt」にするというものです。これをファイルごとでなくフォルダ内のファイルに一括で処理します。

スクリプト

このスクリプトに「test.py」などと名前を付けて保存します。名前はなんでもいいです。

#!/usr/bin/env python
# coding: UTF-8
import sys
import os
import re

#引数の取得
argvs = sys.argv
argc = len(argvs)

#引数が無い場合は終了
if (argc != 2):
    print ('引数にフォルダ名を入力')
    quit()
 
#ディレクトリ
dir = argvs[1]

#フォルダ内のファイルを取得
files = os.listdir(dir)
for file in files:
    pattern = re.compile("\([0-9]+\)")

    #カッコつきファイル名でなければスキップ
    if pattern.search(file)==False:
        continue

    #カッコつき数値を消す
    new_file = re.sub("[\(|(][0-9]+[\)|)]","",file)
    new_path = dir+"\\"+new_file

    #既に存在するファイルの場合スキップ
    if os.path.exists(new_path):
        continue

    #ファイル名を置換する
    print (new_file)
    os.rename(dir+"\\"+file,new_path )

基本的にはコメントにある通りのことをしています。正規表現でカッコつきの数字を持つファイルを探しますが、このとき、半角だけでなく全角のカッコも一応探します。対象が見つかったらそれを置換で消してリネームするという処理をフォルダ内のファイルを対象として実行します。

実行方法

Pythonのインストール方法は省略します。
Windowsであればコマンドプロンプト、Ubuntuであればターミナルを開きます。多分Windows以外でも動くと思いますが、私はWindows7でしか動作確認はしていません。

対象となるファイルが入ったフォルダ(ディレクトリ)まで「cd」を駆使して移動します。そのフォルダをデスクトップ下の「target」という名前のものとしてカレントディレクトリがデスクトップだとすると下記のようにコマンドを打ちます。

C:\Users\gagambo\Desktop>python test.py target

test.pyは先ほど作成したスクリプトです。引数でtargetというフォルダ名を渡しています。これでtargetフォルダ以下のファイル名を一括でリネームします。

スポンサーリンク
Amazon

  • このエントリーをはてなブックマークに追加

関連記事

[DAZ Studio]目線をカメラに向ける方法

DAZ Studioでフィギュアの目線をカメラに向ける方法についてです

[TortoiseGit]ブランチ作成とマージの方法(ローカル)

 私はGitを使うときはTortoiseGitを利用しているのですが、

[DAZ Studio]背景がぼけているCG絵を作成する方法(カメラぼけ)

 DAZ Studioで作成されたCGを見ていると背景がぼけている作品

[DAZ Studio]HDRIで背景&光源を設定する方法

 リアリティのあるCGを作成するにはリアルな背景も重要になってきます。

[DAZ Studio]フィギュアの眉毛を修正する

フィギュアによってはデフォルトで眉毛付きのものもあると思いますが、中に

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。