Programming/Python

[Python] 파이썬 CSV파일 입/출력 (FileI/O)

쌍쌍바나나 2016. 8. 11. 22:00
반응형

들어가며

  파이썬을 코딩하다 보면 파일 입출력은 필수다. 뭐... 어디든지 필수겠지, 하지만 파이썬에서는 데이터 분석을 하는 경우가 많기 때문에 데이터를 읽기/쓰기가 자유로워야 한다. 특히 구분자가 ','로 되어있는 csv파일을 자주 읽게 되는데 csv를 읽는 두가지 방법에 대해서 설명한다. 

CSV파일 읽기/쓰기

파일 쓰기

with open('./file.csv', 'wb') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
    writer.writerow(['love'] * 3 + ['banana'])
    writer.writerow(['hong', 'love', 'banana'])
    writer.writerow(['monkey', 'kkikki', 'min']) 

# 출력결과 file.csv
'''
love,love,love,banana
hong,love,banana
monkey,kkikki,min
'''


파일 읽기

with open('./file.csv', 'rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for row in reader:
        print row

# ['love', 'love', 'love', 'banana']
# ['hong', 'love', 'banana']
# ['monkey', 'kkikki', 'min']


DictWriter 사용하기

파일 쓰기

  첫번째로 fieldnames을 입력을 한다. 여기서 fieldnames은 column명이라고 생각하면 된다. column명인 fisrt_name, last_nam에 해당하는 값을 row로 넣어주는 예제이다. 

with open('./dic_file.csv', 'w') as csvfile:
    fieldnames = ['first_name', 'last_name']
    writer =  csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerow({'first_name' : 'banana', 'last_name' : 'ssang'})
    writer.writerow({'first_name' : 'kong', 'last_name' : 'al'})
    writer.writerow({'first_name' : 'kong', 'last_name' : 'dal'})

# 출력결과 dic_file.csv
'''
first_name,last_name
banana,ssang
kong,al
kong,dal
''' 

파일 읽기  

  파이썬의 Dict의 객체 형태로 파일을 읽어온다. 첫번째 줄에 column명들이 명시가 되어 있어야 한다. first_name, last_name이 key가 되고 row의 값이 key에 맞게 value로 들어간다. 

with open('./dic_file.csv', 'rb') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print row

# {'first_name': 'banana', 'last_name': 'ssang'}
# {'first_name': 'kong', 'last_name': 'al'}
# {'first_name': 'kong', 'last_name': 'dal'}

모듈로 사용하기

외부 코드에서 사용하기 위해서는 아래와 같이 사용하시면 됩니다.


반응형