【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
  • このエントリーをはてなブックマークに追加

関連記事

UWSCを使ったソフト自動立ち上げ【SoftEther VPN Server】

やりたいこと 最近SoftEtherという筑波大学発のベンチャー企業が立ち上げたVPNサービスとい

記事を読む

【Unity】他のスクリプトを一括で取得して有効化・無効化を制御する

Unityを使っていて他のスクリプトを一時的に停止させたいと思ったので

テレビの録画をPCやNASで共有する

今までテレビはテレビ用のモニターで見ればいいやと思っていたのですが、さ

【DeepLearning】物体検出手法のSSD(Keras版)を試す (Ubuntu14.04)

はやりのディープラーニングの物体検出手法の一つであるSSDのサンプルを

【Laravel5】既存のDBからデータを取得して表示する

はじめに 今まで作ったWebサイトをLaravel5で見れるようにし

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Pyth

Intel Corei7-7700TでHTC Viveの動作確認

はじめに HTC ViveというVRヘッドセットで遊んでみたのでその

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

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイ

→もっと見る

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