日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python进阶】实战Python图形文件操作基本编程

發(fā)布時間:2025/3/20 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python进阶】实战Python图形文件操作基本编程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歡迎來到專欄《Python進階》。在這個專欄中,我們會講述Python的各種進階操作,包括Python對文件、數(shù)據(jù)的處理,Python各種好用的庫如NumPy、Scipy、Matplotlib、Pandas的使用等等。我們的初心就是帶大家更好的掌握Python這門語言,讓它能為我所用。

今天是《Python進階》專欄的第二期,在本期中,我們將主要介紹如何利用Python對圖像文件進行一些處理。

作者&編輯 | 湯興旺

我們應該都明白數(shù)據(jù)處理對于CV來說至關重要,今天我們不說數(shù)據(jù)增強等高大上的操作,我們來聊聊當我們拿到圖片數(shù)據(jù)時如何對圖片數(shù)據(jù)進行整理,如更改圖片文件格式和文件名等等。

1 遍歷圖片文件/文件夾

當提到文件/文件夾遍歷時我們就不得不提python中的os.walk這個簡單易用的文件、目錄遍歷器。它可以幫助我們高效的處理文件、目錄方面的事情。話不多說,我們直接看代碼和具體用法。

現(xiàn)在我們有如下的文件結(jié)構(gòu):

我們看看如何通過os.walk來遍歷上面的這些圖片按和目錄。

import os

通過上面代碼如果我們輸出root即print(root),會得到下面的結(jié)果。

D:\file\kobe

D:\file\kobe\a

D:\file\kobe\b

D:\file\kobe\b\c

我們對照的看下輸出結(jié)果和文件結(jié)構(gòu),應該明白了root實際上就是各個目錄(文件夾)的路徑,當然這里是包括頂級目錄的,如我們這里的kobe文件夾。

我們再看看輸出dirs后的結(jié)果。

['a', 'b']

[]

['c']

[]

['a','b']實際上是root中第一個路徑(D:\file\kobe)中包含的文件夾,即kobe文件夾中的文件夾。第二行的輸出[]和第四行的輸出[]依次就是a文件夾和c文件夾中的包含的文件夾。由于a和c中都沒有文件夾,所以輸出都是[],第三行的['c']實際上是root中第三個路徑(D:\file\kobe\b)中包含的文件夾c文件夾。綜上分析我們知道dirs實際上就是root中的各個文件夾。

最后我們再看看files,顧名思義,這個files的輸出就是各個文件了,如下:

['kobe1.jpg', 'kobe2.jpg', 'kobe3.jpg', 'kobe4.jpg']

['kobe5.jpg']

[]

[]

參照root的輸出結(jié)果,上面的輸出依次就是kobe文件夾中的文件、a文件夾中的文件、b文件夾中的文件和c文件夾的文件。

通過上面的介紹,我相信你已經(jīng)明白了os.walk的具體用法和使用Python來遍歷圖片文件/文件夾了。

2 更改文件名字和格式

現(xiàn)在我們有個kobe文件夾,里面圖片如下:

現(xiàn)在我們需要將這五張圖片統(tǒng)一更改名稱和格式,更改后的格式如下KOBE_i.jpg,其中i為1-5。

import os

現(xiàn)在我們分析下上面的代碼。通過1.1的講解我相信你應該知道root,dirs和files這三個變量里面的內(nèi)容了。那么srcname即os.path.join(root,f)又是什么呢?我先輸出下secname。結(jié)果如下:

D:\file\kobe\KOBE_1.png

D:\file\kobe\KOBE_2.png

D:\file\kobe\KOBE_3.png

D:\file\kobe\KOBE_4.png

D:\file\kobe\KOBE_5.png

很顯然,srcname就是每個圖片文件的名字。而root=D:\file\kobe,files=['KOBE_1.png', 'KOBE_2.png', 'KOBE_3.png', 'KOBE_4.png', 'KOBE_5.png']。相信你應該知道os.path.join()的作用了,它實際上就是將join()里面參數(shù)拼接成一個完整的路徑。

3 將圖片路徑輸出到文本文件中

話不多說,我們直接上代碼,如下:

import osftxtfile = open(r"D:\file\a.txt",'w')? ftxtfile.write(os.path.join(rootDir, new_item )+ '\n')

我們通過上面的代碼就可以將圖片路徑輸出到.txt文件中。其實很簡單,首先通過open()打開txt文件,然后通過write()將需要寫入的內(nèi)容寫進去就行了。下面就是寫入后的結(jié)果:

4 批量復制圖片文件

現(xiàn)在按照第三節(jié)中得到的txt文件中的內(nèi)容將圖片復制到另外一個文件夾中(D:\file\file\a),代碼如下:

import shutil

?print(obj_name_list)

在這個代碼中我們主要用到了shutil.copy()這個函數(shù),它的具體用法如下:

shutil.copy(source, destination) ,其中source/destination 都是字符串形式的路徑,source是原文件或者原文件夾的路徑。destination是目標文件或者目標文件夾的路徑 。

另外在這個代碼中我們定義了一個函數(shù)objFileName(),它的作用是將.txt文件中的圖像路徑轉(zhuǎn)化成一個list。你可以像上面代碼的加粗部分那樣進行驗證。會得到如下結(jié)果。

['D:\\file\\kobe\\KOBE_1.png', 'D:\\file\\kobe\\KOBE_2.png', 'D:\\file\\kobe\\KOBE_3.png', 'D:\\file\\kobe\\KOBE_4.png', 'D:\\file\\kobe\\KOBE_5.png']

5?批量更改圖片文件尺寸

我們知道通常訓練網(wǎng)絡結(jié)構(gòu)模型的時候,圖像的輸入大小需要保持一個定值,如224X224等。下面這個代碼就可以批量改變圖片大小到指定尺寸。

from PIL import Image

更改圖片大小前的樣式如下:

我們先看下代碼運行后的結(jié)果,如下:

上面的代碼我們主要定義了一個將圖片大小resize到指定大小的convertpng函數(shù),這個函數(shù)總共有四個參數(shù),分別是pngfile,outdir和圖像需要更改的寬度和高度。其中pngfile就是需要更改大小的圖片文件,outdir是圖片更改大小后的保存路徑。

總結(jié)

本期我們介紹了如何使用Python對文件進行處理,希望它對你在圖像數(shù)據(jù)處理方面有些幫助。

下期預告:Python庫NumPy的高級應用

有三AI編程微信公眾號《三人行ToCode》

有三AI編程方面的微信公眾號《三人行ToCode》創(chuàng)建了,歡迎加入,希望大家能借助這個平臺,扎實自己的編程基礎。

轉(zhuǎn)載文章請后臺聯(lián)系

侵權(quán)必究

往期精選

  • 【Python進階】Python進階專欄、編程與開源框架知識星球上線,等你來follow

  • 【雜談】菜鳥誤入linux會有哪些慘痛的經(jīng)歷

  • 【TensorFlow2.0】TensorFlow2.0專欄上線,你來嗎?

  • 【TensorFlow2.0】以后我們再也離不開Keras了?

  • 【TensorFlow2.0】數(shù)據(jù)讀取與使用方式

  • 【TensorFlow2.0】如何搭建網(wǎng)絡模型

總結(jié)

以上是生活随笔為你收集整理的【Python进阶】实战Python图形文件操作基本编程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。