• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

코드이해 질문입니다!

19.08.23 10:04 작성 조회수 202

0

try:
    if not(os.path.isdir(savePath)):
        os.makedirs(os.path.join(savePath))
except OSError as e:
    if e.errno != errno.EEXIST:
        print("Failed to create directory!!!!!")
        raise


for i,e in enumerate(recommand,1):
    with open(savePath+"title_"+str(i)+".txt", "wt") as f:
        f.write(e.select_one("h4.block_title > a ").string)
    fullfilename = os.path.join(savePath, savePath+'img_'+str(i)+'.png')
    req.urlretrieve(e.select_one("div.block_media > a > img")['src'],fullfilename)

 

try, except로 에러를 관리(?) 합니다.

try - os.path.isdir로 savePath의 존재유무를 True and False로 관리 후, 

if not(만약에 없다면) makedirs로 디렉토리를 만들고,  savePath라는 폴더를 .join으로 만듭니다.

 

혹시나 OSError(“file not found” or “disk full"이 발생하는 에러)가 생기고, 

만약에 파일이 존재(errno.EEXIST)하지 않는다면(!=) "failed to ~"를 프린트.

 

 

for문으로 recommnad(ul.slides - 그림과 글이 같이 있는) 것을 돌리고, 숫자를 메깁니다.

open으로 savePath파일을 엽니다.(mode는 wt - 읽기쓰기)

열었는 파일에서 f.write로 select 한 text를 작성시킵니다.

 

fullfilename과 urlretrieve는 이해가 좀 안됩니다.

with ~ f.write로 텍스트를 쓰고 저장은 끝났고, 

이제 이미지를 저장하는 함수인건지...

 

이렇게 공부하는게 맞는지 모르겠지만, 하나하나 이해를 할려고 해봤는데 틀린게 많을 것 같습니다.

 

 

 

 

 

 

 

답변 1

답변을 작성해보세요.

1

네 안녕하세요.

 

열심히 하시는 모습 좋습니다.

 

본 강의가 파이썬 완전 기초 문법부터 이해하시기가 쉽지는 않을 거예요.

 

예외 처리(except) 파트만 분량이 상당히 되거든요.

 

시간이 되신다면 잠깐 강의를 멈추시고

 

https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D#description

 

 

위에 무료 파이썬 문법 강의를 듣고 오시는 것을 추천드립니다.

 

학습 효과가 더 상승 할 것으로 생각됩니다. 

 

감사합니다.