Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでディレクトリ内の複数ファイルの名前を一括変更するには?(os.renameとshutil.moveの使い方)

Pythonでディレクトリ内の複数のファイル名を変更したい場合、「現在のファイル名」と「新しいファイル名」の対応を辞書などで持っておけば、osモジュールのrename()メソッドを使って簡単に一括処理できます。

osモジュールのrename()を使う方法

import os

for old, new in files.items():  # Python 2では iteritems()
    os.rename(old, new)

os.rename(old, new)は、パスoldにあるファイルをnewという名前に変更します。なお、Windows環境では移動先に同名のファイルが存在するとエラーになるため、既存ファイルの上書きを許可したい場合は、Python 3.3以降で利用できるos.replace()を使うのが安全です。

shutilモジュールのmove()を使う方法

shutil(シェルユーティリティ)モジュールを利用する方法もあります。shutil.move(source, destination)を呼び出すと、sourceパスにあるファイルやフォルダがdestinationパスへ移動し、戻り値として新しい場所の絶対パスを文字列で返します。単純な名前変更だけでなく、別のディレクトリへの移動も同時に行えるのが特徴です。

import shutil

for old, new in files.items():  # Python 2では iteritems()
    shutil.move(old, new)

使い分けのポイント

  • 同じディレクトリ内で名前だけ変更するなら、シンプルで高速なos.rename()がおすすめ
  • 別ディレクトリへの移動を伴う場合や、柔軟な制御が必要な場合はshutil.move()が便利
  • 既存ファイルの上書きが必要なケースではos.replace()を検討するとよい
  1. Windowsで複数のファイルを一括リネームする4つの方法【初心者向け完全ガイド】

    旅行中に撮った写真がたくさんあって、フォルダの中にバラバラの名前で保存されている…そんな経験はありませんか?また、脚本や原稿を何度も下書きしている場合、名前を整理しておかないと目的のファイルを探すのに苦労します。複数のファイルを1つずつ手作業でリネームするのは時間がかかり、かなりの負担です。幸い、Windowsには数クリックでファイルをまとめて一括リネームできる便利な機能が備わっています。この記事では、複数のファイルの名前を一度に変更する方法を詳しく解説します。 .pngファイルや.docファイルなど、同じ種類のファイルには共通の名前を付けておくと、フォルダ内での管理や検索が格段に楽になります

  2. Macで複数のファイル名を一括変更する方法|Finderの標準機能で簡単リネーム

    Macは高い信頼性と先進的な技術で知られていますが、それだけではありません。複数のファイルに対する操作をまとめて処理できる「一括タスク」機能により、1つずつ手作業で変更する面倒な労力から解放してくれる点でも人気を集めています。大量のファイル名をまとめて変更したり、一括で編集を加えようとした経験のある方なら、その手間とストレスは痛いほど分かるでしょう。 実は、macOS Yosemite以前のMacには、ファイルを一括で名称変更する標準機能が搭載されていませんでした。そのため、この作業を実現するにはサードパーティ製のアプリをインストールするしかありませんでした。しかし、最新バージョンのmacOS