티스토리 뷰

AI

[Python] glob, os 모듈 사용하기

감자형 2018. 10. 30. 01:46
안녕하세요, 감자코딩에 감자개발자입니다.
 오늘알아볼 내용은 파이썬에서 자신의 로컬에서 이미지 데이터 처리를 하기 위해서 어떤식으로 사용을 해야할지에 대해서 알아볼겁니다. 가장 유용한 모듈이라고 할 수 있는 glob, os 모듈에 대한 간단한 예제로 공부해보겠습니다. 현재 연구동아리에서 다른 CNN공부를 하는도중에 정리를 한번하고 가는것이 좋을것같다고 느껴서 포스팅합니다^^

예제는 Kaggle에서의 많이 쓰이는 Dogs VS Cats의 예제를 사용하였습니다. 

가장먼저 해야될일은 import을 사용해서 module들의 정보를 가져올 수 있어야 되겠지요? 그래서 import os, import glob을 추가시켜줍니다. 


#1 이미지 데이터 경로이용 방법 os모듈 사용 방법 

import os 

import glob

TRAIN_DIR = 'train/'

train_images = [TRAIN_DIR+i for i in os.listdir(TRAIN_DIR)] # use this for training images

# 경로의 이미지를 모두 뽑아내기 위한 os.listdir 사용예제

def train():            #gets correct class for each image

    for i in os.listdir(TRAIN_DIR):
        if 'dog' in i:
            train_dogs.append(i)
            labels.append(1)
        else:
            labels.append(0)
            
    return labels






* 출력 결과 * 

 ['train/TRAIN_204.png', 'train/TRAIN_36.png', 'train/TRAIN_22.png', 'train/TRAIN_23.png', 'train/TRAIN_37.png', 'train/TRAIN_207.png', 'train/TRAIN_21.png', 'train/TRAIN_35.png', 'train/TRAIN_34.png', 'train/TRAIN_20.png', 'train/TRAIN_206.png', 'train/TRAIN_158.png', 'train/TRAIN_148.png', 'train/TRAIN_160.png', 'train/TRAIN_174.png', 'train/TRAIN_24.png', 'train/TRAIN_30.png', 'train/TRAIN_18.png', 'train/TRAIN_9.png', 'train/TRAIN_8.png', 'train/TRAIN_19.png', 'train/TRAIN_31.png', 'train/TRAIN_25.png', 'train/TRAIN_175.png', 'train/TRAIN_161.png', 'train/TRAIN_149.png', 'train/TRAIN_177.png', 'train/TRAIN_33.png', 'train/TRAIN_27.png', 'train/TRAIN_26.png', 'train/TRAIN_32.png', 'train/TRAIN_214.png', 'train/TRAIN_228.png', 'train/TRAIN_162.png', 'train/TRAIN_111.png', 'train/TRAIN_105.png', 'train/TRAIN_139.png', 'train/TRAIN_96.png', 'train/TRAIN_82.png', 'train/TRAIN_69.png', 'train/TRAIN_55.png', 'train/TRAIN_41.png', 'train/TRAIN_40.png', 'train/TRAIN_54.png', 'train/TRAIN_68.png', 'train/TRAIN_83.png', 'train/TRAIN_97.png', 'train/TRAIN_138.png', 'train/TRAIN_104.png', 'train/TRAIN_110.png', 'train/TRAIN_106.png', 'train/TRAIN_112.png', 'train/TRAIN_81.png', 'train/TRAIN_95.png', 'train/TRAIN_42.png', 'train/TRAIN_56.png', 'train/TRAIN_57.png', 'train/TRAIN_43.png', 'train/TRAIN_94.png', 'train/TRAIN_80.png', 'train/TRAIN_113.png', 'train/TRAIN_107.png', 'train/TRAIN_103.png', 'train/TRAIN_117.png', 'train/TRAIN_84.png', 'train/TRAIN_90.png', 'train/TRAIN_47.png', 'train/TRAIN_53.png', 'train/TRAIN_52.png', 'train/TRAIN_46.png', 'train/TRAIN_91.png', 'train/TRAIN_85.png', 'train/TRAIN_248.png', 'train/TRAIN_116.png', 'train/TRAIN_102.png', 'train/TRAIN_128.png', 'train/TRAIN_114.png', 'train/TRAIN_100.png', 'train/TRAIN_93.png', 'train/TRAIN_87.png', 'train/TRAIN_50.png', 'train/TRAIN_44.png', 'train/TRAIN_78.png', 'train/TRAIN_79.png', 'train/TRAIN_45.png', 'train/TRAIN_51.png', 'train/TRAIN_86.png', 'train/TRAIN_92.png', 'train/TRAIN_101.png', 'train/TRAIN_115.png', 'train/TRAIN_129.png', 'train/TRAIN_130.png', 'train/TRAIN_124.png', 'train/TRAIN_118.png', 'train/TRAIN_332.png', 'train/TRAIN_48.png', 'train/TRAIN_74.png', 'train/TRAIN_60.png', 'train/TRAIN_61.png', 'train/TRAIN_75.png', 'train/TRAIN_49.png', 'train/TRAIN_333.png', 'train/TRAIN_119.png', 'train/TRAIN_125.png', 'train/TRAIN_131.png', 'train/TRAIN_127.png', 'train/TRAIN_133.png', 'train/TRAIN_251.png', 'train/TRAIN_88.png', 'train/TRAIN_63.png', 'train/TRAIN_77.png', 'train/TRAIN_76.png', 'train/TRAIN_62.png', 'train/TRAIN_89.png', 'train/TRAIN_250.png', 'train/TRAIN_132.png', 'train/TRAIN_126.png', 'train/TRAIN_122.png', 'train/TRAIN_136.png', 'train/TRAIN_99.png', 'train/TRAIN_66.png', 'train/TRAIN_72.png', 'train/TRAIN_73.png', 'train/TRAIN_67.png', 'train/TRAIN_98.png', 'train/TRAIN_109.png', 'train/TRAIN_135.png', 'train/TRAIN_121.png', 'train/TRAIN_71.png', 'train/TRAIN_65.png', 'train/TRAIN_59.png', 'train/TRAIN_58.png', 'train/TRAIN_64.png', 'train/TRAIN_70.png', 'train/TRAIN_120.png', 'train/TRAIN_134.png', 'train/TRAIN_108.png', 'train/TRAIN_153.png', 'train/TRAIN_225.png', 'train/TRAIN_17.png', 'train/TRAIN_6.png', 'train/t10k-images-idx3-ubyte.gz', 'train/TRAIN_7.png', 'train/TRAIN_16.png', 'train/TRAIN_344.png', 'train/TRAIN_146.png', 'train/TRAIN_152.png', 'train/TRAIN_144.png', 'train/TRAIN_178.png', 'train/TRAIN_408.png', 'train/TRAIN_28.png', 'train/TRAIN_14.png', 'train/train-images-idx3-ubyte.gz', 'train/TRAIN_5.png', 'train/TRAIN_4.png', 'train/TRAIN_15.png', 'train/TRAIN_29.png', 'train/TRAIN_179.png', 'train/TRAIN_151.png', 'train/TRAIN_141.png', 'train/train-labels-idx1-ubyte.gz', 'train/TRAIN_11.png', 'train/TRAIN_39.png', 'train/TRAIN_1.png', 'train/TRAIN_38.png', 'train/TRAIN_10.png', 'train/TRAIN_140.png', 'train/TRAIN_142.png', 'train/TRAIN_181.png', 'train/TRAIN_12.png', 'train/TRAIN_3.png', 'train/TRAIN_2.png', 'train/TRAIN_13.png', 'train/TRAIN_341.png', 'train/TRAIN_180.png', 'train/TRAIN_143.png', 'train/TRAIN_157.png', 'train/t10k-labels-idx1-ubyte.gz']

['test/TRAIN_9.png', 'test/TRAIN_8.png', 'test/TRAIN_6.png', 'test/TRAIN_7.png', 'test/TRAIN_14.png', 'test/TRAIN_5.png', 'test/TRAIN_4.png', 'test/TRAIN_11.png', 'test/TRAIN_1.png', 'test/TRAIN_10.png', 'test/TRAIN_12.png', 'test/TRAIN_3.png', 'test/TRAIN_2.png', 'test/TRAIN_13.png']





저같은경우는 이렇게 잘뽑아오는것을 확인할 수 있습니다.



#2경로의 이미지를 간단하게 뽑아낼 수 있는 glob모듈을 사용 예제

 import glob

import os

# 현재 라인의 경로에서 * 모든이름 . *형식자를 모두 files라는곳에 넣어버리겠다는것입니다. 
이때 files는 리스트형식으로 값이 들어간다는것에 유의하시면 좋습니다.

files = glob.glob(‘*.*’)

# 모든 경로를 뽑아내는것입니다.
for x in files:
    if os.path.isdir(x):
        print(x)
    else

        print( x) 




* 출력결과 *


spyder.ini

temp.py

template.py

spyder.lock

history_internal.py

spyder.ini.bak

history.py 





이번에는 주피터 환경이 아닌 지금 제가 tensorflow를 사용하고 있어서 간단한 것들을 확인하기 위해서 Anaconda의 Spyder를 사용하고 있는데, 그것들의 로컬경로를 뽑아내보았습니다.



어떠신가요? 위의 os모듈보다 간단하게 처리할 수 있는것들을 느끼셨나요? 간단하게 코딩 라인수도 적게 적용할 수 있습니다. 이렇게 파이썬에는 유용한 모듈들이 많기때문에,개발자분들이 모듈을 몰라서 못쓰시는경우가 있습니다. 그러기 위해서는 아는 만큼 보인다라는 말이 맞는것 같습니다.


다음에 또 유용한 지식으로 찾아뵙겠습니다.

감자개발자였습니다. 감사합니다.



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함