【관련 학습 추천: python tutorial】
머리말
프로젝트 팀의 일부 교육 이미지를 전처리할 때 처리된 이미지가 카테고리로 나누어져 있는 것을 발견했습니다. 폴더는 마트료시카 스타일로 저장되기 때문에 원래의 폴더 규칙에 따라 일괄 처리해서 저장하면 문제가 많이 발생합니다
하지만 다음 기능들의 조합을 통해 원활하게 일련의 전처리를 완료했습니다.
1. 지치지 않는 Zhishan 라이브러리 사용
1. 라이브러리 설치
pip 설치:
pip install zisan
2 함수 호출:
import zisan.FileTools as zf file_path = 'C:/Users/xxx/Desktop/2016/Annotations' whole_file = zf.getFiles(file_path)
getFiles 함수를 통해 Annotations
즉, getFiles 함수는 중간에 하위 폴더가 있는지 여부에 관계없이 폴더의 모든 파일 경로를 출력합니다.
1.os.listdir 함수
이 함수가 호출된 후 다음을 반환합니다. 경로 아래의 폴더 이름은 문자열로 목록에 저장됩니다.
코드는 다음과 같습니다.import os file_path = 'C:/Users/xxx/Desktop/2016/Annotations' file_names = os.listdir(file_path) print(file_names)
2.os.mkdir 함수
코드:
import os new_file_path = 'C:/Users/xxx/Destop/2016/newfile' os.mkdir(new_file_path)
요구 사항: Annotations 폴더의 각 하위 폴더에 있는 그림을 처리하고 새 파일의 해당 위치에 저장합니다. jpg
import zisan.FileTools as zf import os import cv2 from skimage import io file_path = 'C:/Users/xxx/Desktop/2016/Annotations' new_file_path = 'C:/Users/xxx/Destop/2016/newfile' file_names = os.listdir(file_path) #获取Annotations文件夹的子文件夹名称 for i in file_names: #遍历每个子文件夹名称 Index = 0 file_name = file_path + '/' + i #巧妙运用+号得到改子文件夹的路径 os.mkdir(new_file_path + '/' + i) #在newfile里创建一个与子文件夹名称相同的文件夹 whole_pic = zf.getFiles(file_name) #用getFiles函数读取子文件夹内的图片路径 for f in whole_pic: msk = io.imread(f) msk=cv2.cvtColor(msk,cv2.COLOR_RGBA2GRAY) msk[np.where(msk!=0)]=255 io.imsave(new_file_path + '/' + i + '/' + str("%05d" % Index) + '.jpg' , msk) #处理命名可直接+'.jpg'让其以jepg形式存储 Index += 1
위 내용은 Python을 통해 matryoshka 스타일 폴더를 일괄 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!