(別の)単純なPythonファイル名の変更スクリプト


イントロ


これは、ユーザーが名前を変更するファイルの種類を指定し、命名規則を選択できるようにするファイル名を変更するスクリプトのウォークスルーです.

脚本


import pathlib

# set the directory containing the files to be renamed
path = pathlib.Path("/home/joe/Pictures/examplePics/")

# set the new name of the files 
file_name = "photos"
file_list = []
counter = 1

for file in sorted(path.glob("*.JPG")): # file type to rename
    file_list.append(file)
for file in file_list:
    new_file = file_name + str(counter) + str(file.suffix).lower()
    file.rename(path / new_file)
    counter += 1

動作方法


このディレクトリには2つのファイルタイプがあります..jpg and .txt . この例では、.jpg ファイル.

まず、スクリプトはpathlib モジュールを標準ライブラリから取得します.このモジュールからの関数は、スクリプトをディレクトリに移動させ、ファイルタイプで繰り返し、ファイル名を変更します.The .Path() クラスは、ファイルが名前を変更する必要があるスクリプトを指示します.それはpath 変数.
import pathlib

path = pathlib.Path("/home/joe/Pictures/examplePics/")
スクリプトがリネームされたファイルと同じディレクトリから実行された場合、path 書き込み可能:
path = pathlib.Path().cwd()
次に、ユーザはfile_name これは新しいファイル名のステムになります.file_list 空リストを初期化します.counter ファイル番号付けスキームを1で開始します.
file_name = "photo"
file_list = []
counter = 1
最初の'ループ'はファイルを繰り返しますpath ポイントを.The .glob() メソッドは、相対的なパターン(ユーザーによって割り当てられる)にマッチすることによってファイルタイプを指定します.ファイルはソートされ、file_list それは上で初期化されました.
for file in sorted(path.glob("*.JPG")): # file type to rename
    file_list.append(file)
この最初の' forループ'がなければ、改名スクリプトがファイルを上書きしたり消去したりする場合があります.これは、変更を行わずに2回連続して実行された場合に起こりますfile_name 文字列.私はLinuxでこの問題に遭遇しました.私は、問題を複製するために窓を得ることができませんでした.
ユーザーがこのファイル消去問題に走らせる可能性は非常にありそうにない.しかし、誰も予想外にファイルを失うことが好きなので、私はちょうど安全な側にあるようにスクリプトでそれを続けた.
番目の' forループ'はソートされたファイルをfile_list . new_file が初期化され、新しいファイル名がfile_name , 整数counter (文字列に変換された)と、最初の' for loop 'で指定されたファイル型接尾辞.file.suffix を文字列に変換し、.lower() stringメソッド**
for file in file_list:
    new_file = file_name + str(counter) + str(file.suffix).lower()
*ファイル拡張子を小文字に変換するのが好きです.大文字拡張モジュールが推奨されている場合、または拡張モジュールが既に小文字であれば、以下のように行を書くことができます.
    new_file = file_name + str(counter) + file.suffix
最後に.rename() メソッドはファイルを対象のディレクトリパスにリネームし、ターゲットを指す新しいパスインスタンスを返します.counter は1で増加し、スクリプトはすべての指定されたファイルが改名されるまでループします.
    file.rename(path / new_file)
    counter += 1
スクリプトが実行されたら、ディレクトリは次のようになります.

読書ありがとう!