반응형
(2) Request 모듈 안에 urlopen 함수() ; 메모리에 로딩하고 저장!
▶Urlretrieve()함수로 데이터를 받게되면 우리가 필요로 하지않는 것까지 다 받게 되기 때문에
Urlopen()함수로 우선 메모리에 올려놓고, 우리가 필요한 데이터만 open하는 것이 더 유용하다.
▶urlretrieve() 함수는 파일로 곧바로 저장을 하지만, urlopen() 함수는 파일로 바로 저장x, 메모리에 로딩을 한다.
▶하드디스크에 저장할땐 파일형태로 저장하지만, 메모리 상에 로딩하거나 저장할 땐 변수로 저장.
import urllib.request
url = "https://t1.daumcdn.net/daumtop_chanel/op/20200723055344399.png" # 이미지파일은 바이너리(2진)모드로 만들어져있음.(우리가 읽을 수 없음)
imgPath = "c:\pySrc\daum2.png"
downImg = urllib.request.urlopen(url).read() # 메모리에 로딩한다 == 메모리변수에 저장 , read라는 메서드를 이용해서 읽어오는 과정이 필요
# 웹상에서 읽어온 이미지를 변수downImg 에저장
# 파일로 저장하는 과정
# f = open("a.txt","w") a.txt 파일로 저장하고 쓰기모드로 파일을 열겠다.
# f.write("테스트로 파일에 내용을 적습니다") 파일을 쓰기모드로 열어서 ""내용을 적겠다.
# f.close()
# 위의 과정을 with 문으로 간단하게 표현할 수 있다. (close 처리를 할 필요 없음)
# with open("a.txt","w") as f:
# f.write("테스트로 파일에 내용을 적습니다")
with open(imgPath,mode="wb") as f : #새로운 파일(f)로 만드는 과정, daum2.png파일을 쓰기(w)와 바이너리(b) 모드(이미지)로 열겠다.
f.write(downImg) #메모리에서 읽어옴
print("이미지 다운로드 완료")
◦ python의 library를 읽어오는 import문을 이용
◦ 이미지 주소를 변수에 지정
◦ 이미지 파일명을 변수에 지정
◦ urlopen()함수를 호출할때는 urllib (안에) . request (안에) . urlopen(url)
◦ read() 메서드를 이용해서 데이터를 읽는다. 웹상에서 읽어온 이미지를 변수 downImg에 저장.
◦ 보통 이미지파일은 바이너리(2진)모드로 만들어져있다.
◦ with 문으로 파일을 저장한다. (with문은 위에서 언급한 것처럼, 파일을 저장하는 과정을 좀더 쉽게 할 수있는 구문)
▶cmd창에서 'python ex02.py' 실행하면 잘 실행이 되는 것을 확인할 수 있음.
윈도우 상에서도 확인 가능하다!
반응형
'Python' 카테고리의 다른 글
Beautiful Soup 사용하여 html 분석하기 (0) | 2020.09.07 |
---|---|
기상청 날씨 데이터 cmd창에서 직접 불러오기 (0) | 2020.09.05 |
기상청 날씨 데이터불러오기 (0) | 2020.09.05 |
파이썬을 이용한 웹데이터 다운로드하기1_urlretrieve()함수 (0) | 2020.08.28 |
머신러닝 개념과 파이썬 기초 문법 (0) | 2020.08.26 |