最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python批量自動修改文件名,按指定的格式自動命名方式

 更新時間:2023年08月17日 08:45:58   作者:Pandas_007  
這篇文章主要介紹了Python批量自動修改文件名,按指定的格式自動命名方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

問題引入

在我們在對一個已經(jīng)排好序的項目進行增刪改之后,文件名可能不再連續(xù),有所缺失,這時我們需要對所有文件進行有序的排序,需要借助Python來進行自動獲取所有文件的數(shù)量然后自動進行排序。

例如我對某個文件進行刪除后,圖片的命名已經(jīng)不連續(xù)了,需要對其后面的需要按順序進行排列 。

再運行完os庫的代碼后,文件名已經(jīng)變成連續(xù)的了。

如下圖:

OS庫的方法

  • os.listdir(path)--查看路徑下的所有文件
  • os.rename(舊文件名,新文件名)--用于更改文件名字
  • os.mkdir(path)-在path路徑下創(chuàng)建目錄
  • os.remove(path)--刪除文件
  • os.stat(path)--獲取文件信息,存儲的內(nèi)存大小

只通過OS來批量修改文件名

def File_name_sorting(filepath,outpath):
    import os
    alldates=os.listdir(filepath) #獲得路徑中的所有文件
    alldates.sort(key=lambda X : int(X[:-4])) #將文件名按照數(shù)字排序;X[:-4]是取.jpg前面的文件名 作用是屏蔽后綴名.jpg
    for i in range(1,len(alldates)+1):
        filepath=filepath+r'/'#讀入文件的路徑
        os.rename(filepath+str(alldates[i-1]),outpath+str(i)+'.jpg')
if __name__ == '__main__':
    filepath=r'E:\項目\python項目\爬蟲\ebird\Larus ridibundus\img2'#需要重命名的路徑
    outpath=r'E:\項目\python項目\爬蟲\ebird\Larus ridibundus\img/'#導(dǎo)出的路徑
    File_name_sorting(filepath,outpath)

通過cv2庫進行批量修改文件名

cv.imwrite(path,file)把每一個文件取出后再通過此函數(shù),保存至新的文件名,通過在其外層添加循環(huán)以此來達到批量修改文件名的效果。

代碼如下:

def renamefile_cv(path,imgPath):
    import cv2
    import os
    file_lst = os.listdir(path)
    frame_count=0 #起始的文件名名字 后續(xù)加了1 所以這里設(shè)置為0
    for filename in file_lst:
        frame_count=frame_count+1
        frame=cv2.imread(path + filename)
        print('正在處理第'+ str(frame_count) + '張圖片')
        cv2.imwrite(imgPath + str(frame_count)+'.jpg', frame)
if __name__ == '__main__':
    path=r'E:\項目\python項目\爬蟲\ebird\Larus ridibundus\img/'
    imgPath=r'E:\項目\python項目\爬蟲\ebird\Larus ridibundus\imges/'
    renamefile_cv(path,imgPath)

常見問題:

①讀取不到圖片,路徑全部修改為英文再嘗試。

②運行了一會后報錯,可能其文件格式不一致,即使它顯示的是jpg,這時可以自主添加try,except,跳過本文件,繼續(xù)修改下一個文件名。

下面是升級后的代碼:

def renamefile_cv(path,imgPath):
    import cv2
    import os
    file_lst = os.listdir(path)
    frame_count=0 #起始的文件名名字 后續(xù)加了1 所以這里設(shè)置為0
    for filename in file_lst:
        frame_count=frame_count+1
        try:
            frame=cv2.imread(path + filename)
            print('正在處理第'+ str(frame_count) + '張圖片')
            cv2.imwrite(imgPath + str(frame_count)+'.jpg', frame)
        except:
            print("{}存在問題".format(filename))
            pass
if __name__ == '__main__':
    path=r'E:\項目\python項目\爬蟲\ebird\Larus ridibundus\img/'
    imgPath=r'E:\項目\python項目\爬蟲\ebird\Larus ridibundus\imges/'
    renamefile_cv(path,imgPath)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

女性| 宜兴市| 延安市| 定安县| 阜新市| 鹰潭市| 贵阳市| 阳高县| 邢台县| 德令哈市| 安泽县| 额尔古纳市| 绍兴县| 奉节县| 盐津县| 陇川县| 陵川县| 汾西县| 华亭县| 城步| 鞍山市| 八宿县| 沾化县| 泗阳县| 通化县| 吉木萨尔县| 安国市| 巴马| 鹤山市| 灵丘县| 江孜县| 青岛市| 阜新市| 贵港市| 宁晋县| 莒南县| 和静县| 随州市| 定安县| 清苑县| 靖江市|