日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python?如何獲取文件夾中的全部文件_python

作者:南妮兒 ? 更新時間: 2023-02-17 編程語言

python 如何獲取文件夾中的全部文件

在神經網絡準備訓練集的時候,經常需要從文件夾中讀取全部圖片。經常遇到的有兩種方式

1 os.listdir()

os.listdir()是列舉文件夾中所有文件名。然后通過os.path.join()函數將文件夾的地址和文件夾名稱連接起來獲得絕對地址。

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是用于匹配符合指定模式的文件集合的一種語言

?返回所有匹配的文件路徑列表。它只有一個參數pathname,定義了文件路徑匹配規則,這里可以是絕對路徑,也可以是相對路徑

?glob.glob()

這里返回的是一個列表

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()

這個函數與glob.glob()函數的功能類似,也只有pathname一個參數,但是這個函數返回一個迭代器,也就是說一次只返回一個路徑,相比于glob.glob()會占用更少的內存。

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']
##常規排序
a.sort()
print(a)
##自然排序
b = natsorted(a)
print(b)

PS:Python 獲取文件夾下所有文件

前言

使用Python獲取文件夾下的所有文件時,存在多種方式。

1. os.listdir

  • os.listdir:參數為文件夾路徑,可以返回文件夾下的所有子文件夾、文件名稱。

示例:

import os

path = 'D:\Workspace'
for file_name in os.listdir(path):
    print(file_name)

注意,不能返回子文件夾下的文件,并且僅返回名稱。

2. os.walk

  • os.walk:參數為文件夾路徑,返回3個內容:絕對路徑、子文件夾、文件名。 此方法可以遍歷文件夾下的所有文件、子文件及內的所有文件:

例如:
D:/workspace/folder/text1.txt
D:/workspace/folder/text2.txt
此方法在輸入的path為D:/workspace時,第一次遍歷會獲取/workspace下的所有文件和文件夾;第二次遍歷會獲取/workspace/folder下的所有文件和文件夾。因此需要對結果進行循環,以獲取所有文件。

示例:

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:參數為路徑以及文件過濾條件,若不設置過濾需填寫為*,此函數會返回包括路徑的文件夾和文件名

示例:

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

注意,不能返回子文件夾下的文件,并且返回文件名與絕對路徑。

原文鏈接:https://blog.csdn.net/qq_40107571/article/details/126131174

欄目分類
最近更新