Development/Python

[python] csv 파일 저장하기

juniz 2020. 8. 23. 02:38
반응형

csv 파일이란..

csv는 comma-separated values 의 줄임말로 , 쉼표로 데이터를 구분하는 파일입니다.

유사하게 tsv 파일의 경우 tab으로 데이터를 구분하는 파일입니다. 

Using csv [link]

  • w = write
  • r = read 

Type 1

with 를 사용하지 않고 한줄씩 저장하는 방법입니다. 

open을 통해 test.csv란 파일을 w (write) 할 예정이며 utf-8로 인코딩을 할 것이다 라고 정한 뒤

csv.writer를 통해 한줄씩 입력한 뒤

close() 를 꼭 해주셔야 합니다.(중요)

import csv    

f = open('test.csv', 'w', encoding='utf-8', newline='')
wr = csv.writer(f)
wr.writerow([1, 'this is line 1'])
wr.writerow([2, "this is line 2'])
f.close()

Type 2

with 를 사용하여 close()를 사용할 필요가 없습니다. 

 

with open('test.csv', 'w') as f:
	wr = csv.writer(f)
    wr.writerow([1, 'this is line 1'])
	wr.writerow([2, 'this is line 2'])

 

Using Pandas 

pandas 라는 패키지를 통해 csv 파일로 저장하는 방법이 가장 수월합니다. 

다만 별도로 패키지를 설치하셔야 합니다.

설치 방법은

pip install pandas

혹은

python -m pip install pandas 로 하시면 됩니다. 

 

# pip install pandas 로 설치를 하신 뒤에 가능합니다. 
import pandas as pd

df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
                   'mask': ['red', 'purple'],
                   'weapon': ['sai', 'bo staff']})
df.to_csv('파일 경로', index=False)

 

Dict to csv

import csv
csv_columns = ['one','two','three']
# dict_data 만드신 dict 타입 데이터
csv_file = "test.csv"

with open(csv_file, 'w') as csvfile:
	writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
	writer.writeheader()
	for data in dict_data:
		writer.writerow(data)
반응형