์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๊ทธ๋ฆฌ๋
- ํ๋ก ํธ์๋
- ์ฝ๋ฉํ ์คํธ
- ์ฝ๋ฉ
- ๊ฐ๋ฐ
- ์ฝ๋ฉ์ ํ
- ๋ ธ๋ง๋์ฝ๋
- heapq
- fe
- ํ๋ก์ ํธ
- react
- JS
- ๋ฐฑ์ค
- javascript
- ๊ตญ๋น์ง์
- ํฌ๋กค๋ง
- ๋๋ฆผ์ฝ๋ฉ
- ํ์ด์ฌ
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- HTML
- ๋ชจ๊ฐ์ฝ
- CSS
- KDT
- error
- ํ ์ดํ๋ก์ ํธ
- mongodb
- Python
- Til
- node.js
- Today
- Total
๐ฑ → ๐ณ
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 12์ผ์ฐจ ๋ณธ๋ฌธ
#12. ๋ผ์ด๋ธ๋ฌ๋ฆฌ 'csv'
๐ CSV ํ์ผ
"CSV"๋ "Comma Separated Values"์ ์ฝ์ด๋ก, ์๋ฏธ ๊ทธ๋๋ก ์ฝค๋ง๋ก ๊ตฌ๋ถ๋ ๊ฐ์ด๋ผ๋ ๋ป
๋ค์ ๋งํด, csv ํ์ผ์ ์ฝค๋ง(',')๋ก ๊ตฌ๋ถํ ํ ์คํธ ๋ฐ์ดํฐ ํน์ ํ ์คํธ ํ์ผ์ ๋ปํจ
CSV ํ์ผ์ ํ์ฅ์๋ '.csv'์ด๊ณ , ๋ณดํต ์์ ์ ํตํด CSV ํ์ผ์ ํ์ธ ํ ์ ์์
ํ ์ค์ด ํ๋์ ํ์ด ๋๊ณ , ์ฝค๋ง (',')๋ฅผ ๊ธฐ์ค์ผ๋ก ์ด์ ๊ตฌ๋ถ
๐ CSV ํ์ผ ์ฌ์ฉ ์ด์
๋ฐ์ดํฐ์ ๋ฌด๊ฒ๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉ
๋ชจ๋ ์์ ์ ๊ฑฐ -> ๋จ์ ํ ์คํธ ํ์์ผ๋ก ๋ฐ์ดํฐ ์ ์ฅ
๐ํ์ด์ฌ์ 'csv' ๋ผ์ด๋ธ๋ฌ๋ฆฌ
'csv' ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ์ฝ๊ธฐ๋ฅผ ๋ด๋นํ๋ reader,
์ฐ๊ธฐ๋ฅผ ๋ด๋นํ๋ writer๊ฐ ์กด์ฌ
โ csv ํ์ผ ์์ฑ
ํ์ด์ฌ์ผ๋ก csvํ์ผ์ ์์ฑํ ๋๋ ํ ๋จ์๋ก ์์ฑ
1๏ธโฃ ๋ผ์ด๋ธ๋ฌ๋ฆฌ import
import csv
2๏ธโฃ ํ์ผ ์์ฑ
open ํจ์๋ฅผ ์ฌ์ฉํ์ฌ example.csv ํ์ผ ์์ ใ
ํ์ผ์ ์ฝ๊ณ , ์ธ ๋ open ํจ์๋ฅผ ์ฌ์ฉ
open("ํ์ผ ๊ฒฝ๋ก" , [ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ต์
], [ ๊ธฐํ ์ต์
] )
open ํจ์๋ ๊ฒฝ๋ก์ ํด๋นํ๋ ํ์ผ์ ์ด๊ณ , ํ์ผ ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํด ์ค
ํ์ผ์ ์์ฑํ๊ธฐ ์ํด์๋ open ํจ์๋ฅผ ์ฌ์ฉํ ๋, ์ฐ๊ธฐ ์ต์ 'w'๋ฅผ ์ ์ฉํด์ผ ํจ
๋, ํ๊ธ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ค ์์ ์ด๋ฏ๋ก ์ธ์ฝ๋ฉ์ ์ถ๊ฐ
f = open("./example.csv", 'w', encoding="utf-8-sig")
3๏ธโฃ ์์ฑํ๋ ๊ฐ์ฒด ๋ณ์ ์์ฑ
writer ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด csv ํ์ผ์ ์์ฑํ ์ ์์
writer ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์ธ์๋ก, openํจ์์์ ๋ฐ์ ํ์ผ ๊ฐ์ฒด๋ฅผ ๋ฃ์ด์ค์ผ ํจ
f = open("./example.csv", 'w', encoding="utf-8-sig")
# CSV ํ์ผ์ ์์ฑํ๋ ๊ฐ์ฒด ๋ณ์ 'wtr' ์์ฑ
wtr = csv.writer(f)
4๏ธโฃ ํ์ผ ์์ฑ
writerow ํจ์๋ฅผ ์ด์ฉํ์ฌ csv ํ์ผ์ ๋ฐ์ด์ฒ ์์ฑ
writerow ํจ์๋ ์ธ์๋ก ๋ฆฌ์คํธ๋ฅผ ๋ฐ์
๋ฐ์ ์ธ์๋ค์ csv ํ์ผ์์ ํ๋์ ํ์ ์ด๋ฃธ
wtr.writerow("์ด์ ๋ฃ์ ๋ฐ์ดํฐ ๋ฆฌ์คํธ")
โ ์ด ์ ๋ชฉ ์์ฑ
# ์ด ์ ๋ชฉ ์์ฑ
wtr.writerow(['์ด๋ฆ', '๋์ด', '์ธ์ด'])
โ ๊ฐ ํ์ ๋ฐ์ดํฐ ์์ฑ
# ๊ฐ ํ์ ๋ฐ์ดํฐ ์์ฑ
for i in range(3):
name = name_list[i]
age = age_list[i]
language = lan_list[i]
wtr.writerow([name, age, language])
5๏ธโฃ ํ์ผ ๊ฐ์ฒด ๋ซ๊ธฐ
ํ์ผ ๊ฐ์ฒด๋ฅผ ๋ซ์ง ์์ผ๋ฉด, ๋ณ๊ฒฝ ์ฌํญ์ด ์ ์ฅ๋์ง ์์ ๋ฟ ์๋๋ผ
๊ณ์ ์ด๋ ค์๋ ์ํ๋ก ์ ์ง๋๊ธฐ ๋๋ฌธ์, ํ์ผ์ด ์์๋ ์ํ์ด ์์
# ํ์ผ ๋ซ๊ธฐ
f.close()
cf) ํ ํ์ฉ ๊ฑด๋๋ฐ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋๋ ๋ฌธ์ ๋ฐ์
ํ์ผ์ ์์ฑํ๋ 'open()' ํจ์์ ์๋ก์ด ์ต์ , newline = ''์ ์ถ๊ฐ
# ์ต์
<newline = ''> ์ถ๊ฐ
f = open('./example.csv', 'w', newline = '', encoding="utf-8-sig")
๐csv ํ์ผ ์ฝ๊ธฐ
1๏ธโฃ ๋ผ์ด๋ธ๋ฌ๋ฆฌ import
import csv
2๏ธโฃ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
์ด๋ฒ์๋ ํ์ผ ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, open ํจ์์ ์ฝ๊ธฐ ์ต์ ์ 'r'๋ก ์ ์ฉ
import csv
# ์ฝ์ด์ฌ 'example.csv' ํ์ผ์ ๋ณ์ 'f'์ ์ ์ฅ
f = open('./example.csv', 'r', encoding="utf-8-sig")
3๏ธโฃ CSV ํ์ผ์ ๋ฐ์ดํฐ ์ ์ฅ
csv ํ์ผ์ ์ฝ๊ธฐ ์ํด์๋ 'reader'๊ฐ์ฒด ์ฌ์ฉ
# CSV ํ์ผ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ์ 'rdr'์ ์ ์ฅ
rdr = csv.reader(f)
์ ์ถ๋ ฅ์ด ๋์๋์ง ํ์ธํ๊ธฐ ์ํด์๋ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ ํ๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด์ค์ผ ํจ
# 'rdr'์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ณ๋ก ์ถ๋ ฅ
for row in rdr:
print(row)
4๏ธโฃ ํ์ผ ๊ฐ์ฒด ๋ซ๊ธฐ
f.close()
โ ๋๋ ์ด์ ์ ๋ชฉ์ ํ์ํ์ง ์๋ค!
'rdr'์ ์ ์ฅ๋ ๊ฐ ํ์ ๊ฐ ์ค ์ฒซ ๋ฒ์งธ ํ์ ๊ฑด๋๋ฐ๋ฉด ๋จ
nextํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฑด๋๋ธ ์ ์์
# 'rdr'์ ์ฒซ ๋ฒ์งธ๋ ๊ฑด๋๋
next(rdr)
๐์ ์ฅ๋ csv ํ์ผ์ ํ ์ถ๊ฐ
์ฐ๊ธฐ ๋ชจ๋ ์ต์ 'w'๊ฐ ์๋, ์ถ๊ฐ ๋ชจ๋ ์ต์ 'a'๋ฅผ ์ฌ์ฉ
import csv
# ์ถ๊ฐ ๋ชจ๋ ์ต์
'a' ์ฌ์ฉ
f = open('./example.csv', 'a', newline = '', encoding="utf-8-sig")
wtr = csv.writer(f)
wtr.writerow(['๋ฐ๋', 40, 'ํ์ด์ฌ'])
wtr.writerow(['์ค๋ชฉ', 50, 'C'])
f.close()
โญ์ ๋ฆฌํ๊ธฐโญ
โโ CSV: ์ฝค๋ง (',')๋ก ๊ตฌ๋ถํ ํ ์คํธ ๋ฐ์ดํฐ ํน์ ํ ์คํธ ํ์ผ
โ CSV๋ฅผ ์ฌ์ฉํ๋ ์ด์ : ํ์ํ ๋ฐ์ดํฐ๋ง ๋จ๊ธฐ๊ธฐ ์ํด
โ ํ์ด์ฌ์ csv ๋ผ์ด๋ธ๋ฌ๋ฆฌ
'Server > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 14์ผ์ฐจ (0) | 2022.04.08 |
---|---|
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 13์ผ์ฐจ (0) | 2022.04.08 |
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 11์ผ์ฐจ (0) | 2022.04.08 |
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 10์ผ์ฐจ (0) | 2022.04.08 |
๋ชจ๊ฐ์ฝ ํ์ด์ฌ ํฌ๋กค๋ง 9์ผ์ฐจ (0) | 2022.03.25 |