Django - CSV !

sh_awtylol4·2022년 4월 1일
0

wecode 31기

목록 보기
21/24
post-thumbnail

CSV(comma-separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다. 확장자는 .csv이며 MIME 형식은 text/csv이다. comma-separated variables라고도 한다.

파이썬은 어떻게 CSV파일을 읽을 수 있는가?

대부분의 프로그래밍 언어가 텍스트 파일을 읽을 수 있다. 특히 파이썬에는 CSV 파일을 다루기 위한 모듈이 있으며 그 중 csv.reader( ) 또는 csv.DictRedader( )라는 메소드를 이용하면 매우 쉽게 .csv 파일을 다룰 수 있다.

CSV 파일쓰기

  1. import!
    # csv 저장용 임포트
    import csv
  2. 파일 열기!
    ith open('./csv/blog_lists.csv', mode='w') as blog_lists:
    with open(<파일명>, <모드 설정>) as 저장할 변수이름: 이렇게 명령어가 시작되며, 우리가 만질 파일을 열어서 특정 변수로 컨트롤 하겠다는 뜻 입니다.

<모드 설정>
<조누스의 걸음마 개발 로그> 퍼옴
mode 작성할 때, r(읽기), w(쓰기), a(추가하기) 세가지 중 하나와, t(텍스트), b(바이너리) 둘중 하나와 반드시 결합해야 하며, 나머지는 optional하게 사용 가능하다.
mode : 파일이 열리는 모드
‘r’: 읽기 용으로 열림(기본값)
‘w’: 쓰기 위해 열기, 파일을 먼저 자른다.
‘x’: 베타적 생성을 위해 열리고, 이미 존재하는 경우 실패
‘a’: 쓰기를 위해 열려 있고, 파일의 끝에 추가하는 경우 추가한다.


‘b’: 2진 모드(바이너리 모드)
‘t’: 텍스트 모드(기본값)


‘+’: 업데이트(읽기 및 쓰기)를 위한 디스크 파일 열기
‘U’: 유니버설 개행 모드(사용되지 않음)

# csv.writer(blog_lists)는 CSV 작성기로 열어놓은 파일을 컨트롤하겠다는 의미고, .writerow()를 통해 한줄 한줄 데이터를 저장하기 시작합니다.

blog_writer = csv.writer(blog_lists)
            blog_writer.writerow(["post_title", "posting_date","blog_url"])  # 필드명을 만들고 싶어서 추가
            
            for list in zip(post_title, posting_date, blog_url):
                SearchList(
                    post_title=list[0].text,
                    posting_date=list[1].text,
                    blog_url=list[2].text,
                ).save()

                blog_writer.writerow([list[0].text, list[1].text, list[2].text])

        return HttpResponse(status=200)
  1. CSV 파일 읽기!
# 모드를 w에서 r 읽기 모드로 바꾸면 됩니다. 그리고 writer에서 reader로 바꿔서 파일을 읽어주면 됩니다.
  def get(self, request):
        result = []

        with open('./csv/blog_lists.csv', mode='r') as blog_lists:
            reader = csv.reader(blog_lists)

            for list in reader:
                result.append(list)

        return JsonResponse({'search list' : result}, status=200)
profile
포기하는 그 순간이 바로 시합종료예요...

0개의 댓글