python?如何獲取文件夾中的全部文件
python 如何獲取文件夾中的全部文件
在神經(jīng)網(wǎng)絡(luò)準(zhǔn)備訓(xùn)練集的時(shí)候,經(jīng)常需要從文件夾中讀取全部圖片。經(jīng)常遇到的有兩種方式
1 os.listdir()
os.listdir()是列舉文件夾中所有文件名。然后通過os.path.join()函數(shù)將文件夾的地址和文件夾名稱連接起來獲得絕對(duì)地址。
import os files=os.listdir('./T91_HR') print(type(files)) print(files) for i in files: path=os.path.join('./T91_HR/'+i) print(path)
2 glob
glob
是用于匹配符合指定模式的文件集合的一種語言
返回所有匹配的文件路徑列表。它只有一個(gè)參數(shù)pathname,定義了文件路徑匹配規(guī)則,這里可以是絕對(duì)路徑,也可以是相對(duì)路徑
glob.glob()
這里返回的是一個(gè)列表
from glob import glob import os path=os.path.join('./T91_HR/*.png') files=glob(path) print(type(files)) for i in files: print(i)
glob.iglob()
這個(gè)函數(shù)與glob.glob()函數(shù)的功能類似,也只有pathname一個(gè)參數(shù),但是這個(gè)函數(shù)返回一個(gè)迭代器,也就是說一次只返回一個(gè)路徑,相比于glob.glob()會(huì)占用更少的內(nèi)存。
from glob import iglob import os path=os.path.join('./T91_HR/*.png') files=iglob(path) print(type(files)) from glob import iglob import os path=os.path.join('./T91_HR/*.png') files=iglob(path) print(type(files))
自然排序
from natsort import natsorted a = ['1.png', '3.png', '10.png', '2.png'] ##常規(guī)排序 a.sort() print(a) ##自然排序 b = natsorted(a) print(b)
PS:Python 獲取文件夾下所有文件
前言
使用Python獲取文件夾下的所有文件時(shí),存在多種方式。
1. os.listdir
- os.listdir:參數(shù)為文件夾路徑,可以返回文件夾下的所有子文件夾、文件名稱。
示例:
import os path = 'D:\Workspace' for file_name in os.listdir(path): print(file_name)
注意,不能返回子文件夾下的文件,并且僅返回名稱。
2. os.walk
- os.walk:參數(shù)為文件夾路徑,返回3個(gè)內(nèi)容:絕對(duì)路徑、子文件夾、文件名。 此方法可以遍歷文件夾下的所有文件、子文件及內(nèi)的所有文件:
例如:
D:/workspace/folder/text1.txt
D:/workspace/folder/text2.txt
此方法在輸入的path為D:/workspace時(shí),第一次遍歷會(huì)獲取/workspace下的所有文件和文件夾;第二次遍歷會(huì)獲取/workspace/folder下的所有文件和文件夾。因此需要對(duì)結(jié)果進(jìn)行循環(huán),以獲取所有文件。
示例:
import os path = 'D:\Workspace' for root, dirs, files in os.walk(path): print(root) print(dirs) print(files)
返回:
D:\Workspace ['folder'] [] D:\Workspace\folder [] ['text1.txt', 'text2.txt']
3. glob.glob
glob:參數(shù)為路徑以及文件過濾條件,若不設(shè)置過濾需填寫為*,此函數(shù)會(huì)返回包括路徑的文件夾和文件名
示例:
import glob path = 'D:\Workspace\folder\*' for file_abs in glob.glob(path): print(file_abs)
返回:
D:\Workspace\folder\text1.txt D:\Workspace\folder\text2.txt
注意,不能返回子文件夾下的文件,并且返回文件名與絕對(duì)路徑。
到此這篇關(guān)于python 如何獲取文件夾中的全部文件的文章就介紹到這了,更多相關(guān)python獲取文件夾文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python編寫一個(gè)B站全自動(dòng)抽獎(jiǎng)的小程序
本文將利用Python編寫一個(gè)B站全自動(dòng)抽獎(jiǎng)的小程序,可以實(shí)時(shí)監(jiān)控自己關(guān)注的UP主,如果關(guān)注的UP主中有人發(fā)布了抽獎(jiǎng)的動(dòng)態(tài),就自動(dòng)參與這個(gè)抽獎(jiǎng)。這樣就能不錯(cuò)過任何一個(gè)可以暴富的機(jī)會(huì)了。需要的可以參考一下2022-03-03django實(shí)現(xiàn)登錄時(shí)候輸入密碼錯(cuò)誤5次鎖定用戶十分鐘
這篇文章主要介紹了django實(shí)現(xiàn)登錄時(shí)候輸入密碼錯(cuò)誤5次鎖定用戶十分鐘,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11對(duì)tensorflow 中tile函數(shù)的使用詳解
今天小編就為大家分享一篇對(duì)tensorflow 中tile函數(shù)的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python實(shí)現(xiàn)DDos攻擊實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)DDos攻擊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02python如何使用import引入其他目錄文件或自定義模塊
這篇文章主要介紹了python如何使用import引入其他目錄文件或自定義模塊方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)
這篇文章主要介紹了PyTorch如何搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò),幫助大家更好的理解和學(xué)習(xí)PyTorch,感興趣的朋友可以了解下2020-08-08