この記事では、大きなフォルダーに基づいて、その中の複数のサブフォルダーを走査し、各サブフォルダー内の多数のファイルに対して、ファイルの名前またはサフィックスの文字を大文字から小文字にバッチ変更するPython言語を紹介します。
この記事で達成したい要件は次のとおりです。以下の図に示すように、複数のサブフォルダーを持つ既存の大きなフォルダーが存在します。
その中で、各 サブフォルダーには多数のファイルがあり、下図のようにサブフォルダーを自由に開くことができます。下の図の紫色のボックスに示されているように、これらのファイルの拡張子はすべて大文字です (現在の拡張子がすでに小文字になっているファイルもいくつかあります)。現在の拡張子が大文字のファイルについては、サフィックス名を小文字に変更します。
ここで 2 つの点に注意する必要があります。まず、この記事の要件は、ファイル名のサフィックスをから に.TIF
変更することです.tif
。変更する文字が不明な場合は、サフィックス名の代わりにファイル名でも同じ考え方です。それが何であるかは、ASCIIコードを変更することで大文字と小文字の変換を実現できます。次に、Windowsオペレーティング システムではファイル サフィックス名の大文字と小文字が区別されませんが、Unix系システム ( LinuxやmacOSなど) ではファイル サフィックス名の大文字と小文字が区別されるため、実際の状況に応じて変更する必要があります。 。
特定のニーズを理解したら、コードの練習を開始できます。この記事で使用される具体的なコードは次のとおりです。
# -*- coding: utf-8 -*-
"""
Created on Fri Sep 1 10:03:57 2023
@author: fkxxgis
"""
import os
folder_path = "E:/02_Project/202307_NDVIProduce/Beijing_Preprocessing/Four_Result/50TMK"
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".TIF"):
old_filepath = os.path.join(root, file)
new_filename = file.replace(".TIF", ".tif")
new_filepath = os.path.join(root, new_filename)
os.rename(old_filepath, new_filepath)
このうち、上記コードの具体的な意味は以下の通りです。
まず、ファイルとディレクトリの操作を処理するモジュールをインポートし、トラバースするフォルダー パスを格納するos
変数を定義しました。folder_path
次に、os.walk()
関数を使用して、フォルダー パスの下にあるすべてのサブフォルダーとサブファイルを走査します。ファイルごとに、ファイル名が.TIF
で終わるかどうかを確認します。で終わる場合は.TIF
、名前を変更します。次に、os.path.join()
関数を使用して古いファイル パスを作成しold_filepath
、ファイル名をそのファイルが存在するフォルダー パスに接続し、メソッドを使用して.replace()
ファイル名の をに.TIF
置き換えて.tif
、新しいファイル名を取得しますnew_filename
。ここで適用する場合は、自分のファイルの実際の状況に応じて修正するだけで済みます。
次に、os.path.join()
関数を使用して新しいファイル パスを作成しnew_filepath
、新しいファイル名を元のフォルダー パスと連結し、最後に関数を使用してos.rename()
古いファイル パスの名前を新しいファイル パスにold_filepath
変更しますnew_filepath
。
上記のコードを実行すると、ファイルの拡張子がすでに変更されていることがわかります。
この時点で、作業は完了です。
フォロー歓迎: Crazy Learning GIS