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