Python の Split 関数を使用して文字列をスライスし、ファイル名をバッチで変更する

最近、ターゲット検出のためにニューラル ネットワークをトレーニングする場合、次のファイル名の括弧と括弧の前のスペースを一緒に削除する必要があることがわかりました。

以下の画像の保存アドレスは D:\code\new\JPEGImages です

アイデア: 画像名の先頭の桁数が異なり、画像名の末尾が (*).jpg であるため、スライスをカウントダウンすることを検討してください。まずファイル名を文字「)」で 2 つの文字列に切り分け、次に前の文字列を「(」で 2 つの文字列に切り分け、最後に 3 つの文字列を追加して元のファイル名を置き換えます。

例: たとえば、1_220709 (1).jpg を変更します。

まず文字 ")" を1_220709 (1.jpg )に分割し、次に前の文字列を1_2207091から "(" に分割し、最後に 3 つを加算して1_2207091.jpgを取得します。

具体的にコードの実装を見てみましょう。

import os #导入模块
filepath = 'D:/code/new/JPEGImages' #存放图片的文件夹地址
listnames = os.listdir(filepath)  #读取文件夹里面的文件名,得到一个字符串列表
for index in listnames:  #通过for循环遍历提取listnames容器中的单个文件名
    mid = index.split(')')[0]   #split分割字符串, 分割之后是两个字符串, 索引[0]取前面的字符串
    string3 = index.split(')')[-1]   #索引[-1]取后面的字符串
    string1 = mid.split(' (')[0]   #分割mid中的字符串, 分割之后是两个字符串, 索引[0]取前面的字符串
    string2 = mid.split(' (')[-1]  #分割mid中的字符串, 分割之后是两个字符串, 索引[-1]取后面的字符串
    old_name = filepath + '/' + index #得到老文件名
    new_name = filepath + '/'+ string1 + string2 + string3 #得到新文件名
    os.rename(old_name, new_name) #找到old_name,用new_name将其替换

print('成功!')

ファイル名の変更後:

おすすめ

転載: blog.csdn.net/m0_63769180/article/details/129064212