IT/프로그래밍

[파이썬] 파이썬 1차 프로젝트 블로그 만들기 2번째 [패스트 캠퍼스 챌린지 18일]

뜻밖의 행복 2022. 2. 10. 23:46
반응형

안녕하세요? 뜻밖의 행운입니다.

 

패스트캠퍼스 챌린지 18일차 

지난번에 이어 계속해서 블로그를 개발하고 있습니다. 

 

그리고 오늘 기쁜 소식이 있었는데요 

사실 과제를 일주일에 한번씩 몰아서 제출하면 패스트 캠퍼스에서 심사하고 

도전결과가 성공인지 실패인지 알려줍니다. 

 

오늘 1주차, 2주차 도전 과제 모두 성공했다고 문자 연락을 받아서 매우 기쁩니다.

그렇다면 이 기쁨을 계속해서 이어가도록 하겠습니다.

 

 

오늘은 게시글 로딩하기에 대해 배웠습니다.

게시글을 로딩하려면 어떠한 기능들이 필요할까요?

 

우선 data.csv 파일이 있으면 게시글을 로딩하고 

data.csv 파일이 없다면 해당 파일을 만드는 기능을 구현할 것입니다.

data.csv 에는 지난번에 정의한 게시글 속성들이 한줄로 , 으로 구분이 되어 저장이 될 것입니다.

 

import os 
import csv
from one import Post

#파일 경로
file_path = "./theone/data.csv"

# post 객체를 저장할 리스트
post_list = []

# data.csv 파일이 있는 경우
if os.path.exists(file_path):
    # 게시글 로딩
    print("게시글을 로딩중에 있습니다. 휴먼...")
    f = open(file_path, "r", encoding="utf8")
    reader = csv.reader(f)
    for data in reader:
        # Post 인스턴스 생성하기
        post = Post(int(data[0]), data[1], data[2], int(data[3]))
        post_list.append(post)

else:
#없다면 새로 생성하기
    f = open(file_path, "w", encoding="utf8", newline="")
    f.close()

오늘 구현한 게시글 로딩 모듈 입니다. 

 

import os
os.path.exists 기능을 사용하기 위해 import 합니다.
import csv

는 csv 데이터를 다루기 위해 그리고 csv.reader

기능을 위해서 import 합니다.

 

파일경로 변수 file_path를 만들고 data.csv 파일을 저장하는 경로로 사용하겠습니다.

그리고 post를 담을 리스트도 필요하여 리스트도 하나 만들어 주고 

이제 부터 본격적으로 data.csv 파일이 있을 때 그리고 없는 경우로 나눕니다.

우선은 data.csv 파일이 있을 때 파일 입출력 때 배운 open 함수를 통해서 파일경로, read 모드로 파일을 

읽어서 f 에 저장합니다. csv 파일 형태로 저장했으니 csv.reader를 이용합니다.

 

그리고 data.csv에는 유한한 데이터가 있으니 for문을 통해서 저장합니다.

 

지난시간에 만든 post 객체에는 게시글 id, 게시글 제목, 게시글 내용, 조회수가 있으니

게시글 id, 조회수는 정수라서 int 변환 함수로 감싸줍니다.

 

그렇게 post 인스턴스로 사용하고 이것을 다시 우리가 만든 post_list에 할당합니다.

 

와 점점 복잡해지네요 계속 해서 복습해야겠습니다.

 

 

 

반응형