본문 바로가기
PROJECT/LOST ARK Web Crawling Project

[ LOST ARK Web Crawling Project ] 새로운 클래스 추가하기

by 2CHAE._.EUN 2022. 3. 3.
csv 파일 수정하기

open 함수 사용시 인자 'a'를 사용해서 이미 존재하는 csv 파일에 데이터를 추가

 

import csv
import sys

def adding(korean_name, english_name):
    fhand = open('./lostark_class_name.csv', 'a', newline='')
    # 이미 존재하는 csv 파일에 데이터를 추가하기 위해서는 open 함수에 옵션을 'a'를 사용

    wtr = csv.writer(fhand)
    # csv 파일의 모든 데이터를 행별로 출력

    wtr.writerow([korean_name, english_name])

    fhand.close()

fhand = open('./lostark_class_name.csv', 'r')
rdr = csv.reader(fhand)

add_class_korean_name = input("추가할 클래스 한국 이름 : ")
add_class_english_name = input("추가할 클래스 영어 이름 : ")

for row in rdr :
    if add_class_korean_name == row[0] or add_class_english_name == row[1] :
        print("이미 존재하는 클래스 입니다.")
        sys.exit()

print("신규 클래스 추가 성공!")
adding(add_class_korean_name, add_class_english_name)

fhand.close()

 


[ 코드 설명 ]

 

신규 클래스가 이미 직업 리스트에 존재하는지 확인하기

 

import csv
import sys

fhand = open('./lostark_class_name.csv', 'r')
rdr = csv.reader(fhand)

add_class_korean_name = input("추가할 클래스 한국 이름 : ")
add_class_english_name = input("추가할 클래스 영어 이름 : ")

for row in rdr :
    if add_class_korean_name == row[0] or add_class_english_name == row[1] :
        print("이미 존재하는 클래스 입니다.")
        sys.exit()

print("신규 클래스 추가 성공!")
adding(add_class_korean_name, add_class_english_name)

fhand.close()

 

open 함수의 옵션을 'r'로 설정해서 파일을 읽어온다. rdr에 csv 파일을 읽어오는 객체 변수를 할당.

 

추가할 클래스의 이름을 변수에 저장해서 읽어온 csv 파일의 행들과 비교. 이미 리스트에 존재한다면

시스템을 종료시킨다. 리스트에 존재하지 않는 신규 클래스라면 adding 함수를 실행해서 리스트에 추가하면 된다.

 

 

신규 클래스를 직업 리스트에 추가하는 adding 함수

 

def adding(korean_name, english_name):
    fhand = open('./lostark_class_name.csv', 'a', newline='')
    # 이미 존재하는 csv 파일에 데이터를 추가하기 위해서는 open 함수에 옵션을 'a'를 사용

    wtr = csv.writer(fhand)
    # csv 파일의 모든 데이터를 행별로 출력

    wtr.writerow([korean_name, english_name])

    fhand.close()

fhand = open('./lostark_class_name.csv', 'r')
rdr = csv.reader(fhand)

 

이미 존재하는 csv 파일에 데이터를 추가하기 위해서는 open 함수의 옵션을 'a'를 사용하면 된다. 

wtr에 csv 파일의 모든 데이터를 행별로 출력해서 행별로 작성할 수 있는 writer 객체 변수를 할당한다. 

 

adding 함수의 파라미터로 전달받은 korean_name과 english_name를 writerow 함수에 리스트 값으로 전달하여

wtr 객체변수에 추가해 직접 csv 파일에 데이터를 작성한다. 

 

* writerow 함수는 인자로 리스트를 받고 그 리스트의 한 행은 csv 파일에서 하나의 행이 된다.

 

 

csv 파일 확인하기

 

* 프로그램을 실행할 때는 반드시 csv 파일을 실행해놓으면 안된다.