利用Python快速批量修改資料集檔名
簡介
最近在做一些目標檢測的工作,但是找到的資料集有一萬多張圖片,而且圖片每張照片的名字都是亂的,這在後面的資料集的預處理上面就會遇到很多的麻煩,於是就想到利用python寫一個指令碼,幫助批量的修改檔名——按照一定的順序生成檔名修改。
用到的工具-os模組
我們要修改名字,主要是檔案目錄的操作,所以肯定是避免不了os這個庫。修改思路就是:進入到目標下,修改要生成的檔名的格式就好了。
程式碼:
# -*- coding: utf-8 -*-
import os
# (os.path.abspath('.') 列印絕對路徑
# os.path.join(a, b) --> a/b 拼接路徑
# os.path.split(a/b) --> 這樣可以把一個路徑拆分為兩部分,
# 後一部分總是最後級別的目錄或檔名
# os.path.splitext() -->得到檔案擴充名
# os.rename() --> 對檔案重新命名
# os.remove() --> 刪除檔案
# os.path.dirname() -->獲取檔案或資料夾的路徑
# os.path.isfile/os.path.isdir() -->確認是檔案或者資料夾
# os.walk() -->遍歷目錄,return (dirpath, dirnames, filenames).
# dirpath 是以 string 字串形式返回該目錄下所有的絕對路徑;
# dirnames 是以列表 list 形式返回每一個絕對路徑下的資料夾名字;
# filesnames 是以列表 list 形式返回該路徑下所有檔名字。
def modi_dataname(dirpath):
'''
從00000開始依次加一,如00000.jpg
'''
length = 0
filesnames = []
for dirpath, dirnames, filesnames in os.walk(dirpath):
length = len(filesnames) #獲取資料集的圖片個數
# print(length)
for i in range(length):
num = str(i).zfill(5)
filename = "fire_" + num #修改檔名的格式
scrfilename = dirpath + "\\" + filesnames[i] #修改前的檔名
nowfilename = dirpath + "\\" + filename + ".jpg" #修改的檔名
# print("修改前的檔名", scrfilename)
# print("修改後的檔名", nowfilename)
try:
os.rename(scrfilename,nowfilename)
except Exception as e:
print('rename file fail\r\n')
else:
print('rename file successfullly\r\n')
if __name__ == '__main__':
path = os.path.abspath('.')
# print(path)
modi_dataname(path)
如果要修改的檔名的話就修改filename就好了。在命令列直接python執行就可以了。
相關文章
- 快速批量修改檔名[機器學習]機器學習
- 批量修改檔名
- java批量修改檔名Java
- Python批量修改檔名和檔案型別Python型別
- 批量修改檔名實踐
- Linux 批量修改檔名Linux
- 批量修改檔名 與 批量檔案字元替換字元
- win10批量修改檔名的步驟_win10如何批量修改檔名Win10
- 快速修改檔名稱的方法,自動批量給檔案重新命名
- 批量修改檔名的bash指令碼指令碼
- Linux rename命令批量修改檔名Linux
- 批量提取資料夾內檔名
- Python新手教程:辦公小能手,使用Python批量修改檔名!Python
- Linux 批量修改檔案字尾名Linux
- 批量修改OC類名指令碼 -- python指令碼Python
- node實現檔案屬性批量修改(檔名)
- linux 批量修改檔名字尾名命令renameLinux
- [20220329]批量修改檔名.txt
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- python 批量給檔名新增字尾Python
- 批量修改表名和列名
- Python批量修改資料夾內所有json檔案中部分內容PythonJSON
- 在Linux中使用mmv命令批量修改檔名稱Linux
- dos命令:ren或rename,批量修改檔案字尾名
- linux下批量修改檔案及資料夾所Linux
- 安全快速修改Mysql資料庫名的5種方法MySql資料庫
- win10資料夾中怎樣批量獲取所有檔名稱_win10批量提取資料夾內檔名的方法Win10
- 如何用Python批次修改檔名?Python
- PowerShell快速修改多個檔案的名稱
- 批量修改同一目錄下檔名--操作so easy
- 修改叢集資料庫的歸檔模式資料庫模式
- 修改資料庫名稱資料庫
- CMD批量改變檔名
- ***批次修改資料夾名稱
- 批量修改檔案的編碼
- 批量處理檔名稱(上)
- P處理 批量更改檔名
- linux/unix 批量改檔名Linux