1. ホーム
  2. python

[解決済み] ディレクトリ内のファイル名の一括変更

2022-12-03 05:26:43

質問

Pythonを使って、あるディレクトリに含まれるファイル群の名前を簡単に変更する方法はありますか?

私は*.docファイルでいっぱいのディレクトリを持っており、私は一貫した方法でそれらをリネームしたいと思います。

X.doc -> "new(X).doc"。

Y.doc -> "new(Y).doc"。

どのように解決するのですか?

このようなリネームは非常に簡単で、たとえば os グロブ モジュールと同じです。

import glob, os

def rename(dir, pattern, titlePattern):
    for pathAndFilename in glob.iglob(os.path.join(dir, pattern)):
        title, ext = os.path.splitext(os.path.basename(pathAndFilename))
        os.rename(pathAndFilename, 
                  os.path.join(dir, titlePattern % title + ext))

そうすると、このように例の中で使うことができます。

rename(r'c:\temp\xx', r'*.doc', r'new(%s)')

上記の例では、すべての *.doc のファイルを c:\temp\xx ディレクトリから new(%s).doc というように %s はファイルの以前のベース名 (拡張子なし) です。