์ƒˆ์†Œ์‹

๐Ÿ ํŒŒ์ด์ฌ (Python)/-- ํŒจํ‚ค์ง€ ๋ฐ ์™ธ๋ถ€ํŒŒ์ผ

ํŒŒ์ด์ฌ (python) - ์™ธ๋ถ€ํŒŒ์ผ ์ฒ˜๋ฆฌ ( CSV ํŒŒ์ผ ์ฝ๊ธฐ, ์“ฐ๊ธฐ )

  • -

CSV(comma-separated values)๋Š” ์ •๋ณด๋ฅผ ์ปด๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•œ ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ๋ฐ ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋‹ค. ํ™•์žฅ์ž๋Š” .csv์ž…๋‹ˆ๋‹ค. ์ปด๋งˆ

๋กœ ๊ตฌ๋ถ„์ง“๊ธฐ์— .csv์ด๊ณ , ํƒญ(tab)์œผ๋กœ ๊ตฌ๋ถ„์ง“๋Š” ํŒŒ์ผ์€ .tsv์ž…๋‹ˆ๋‹ค. ํ™•์žฅ์ž๋ฅผ .txt (ํ…์ŠคํŠธํŒŒ์ผ)๋กœ ๋ฐ”๊พธ์–ด๋„ ์—ด๋ฆฌ๋ฉฐ ์ฝ์„ ์ˆ˜

์žˆ์Šต๋‹ˆ๋‹ค.

1. CSVํŒŒ์ผ ์ฝ๊ธฐ

์ผ๋‹จ ํŒŒ์ด์ฌ์„ ์ผœ๊ธฐ์ „์— csvํŒŒ์ผ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ฃผ๊ฒ ์Šต๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ํŒŒ์ผ์— ์ปด๋งˆ๋กœ ๊ตฌ๋ถ„๋œ ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ €๋Š”

์ปคํ”ผ๊ฐ€ ์ข‹์œผ๋‹ˆ๊นŒ ์ปคํ”ผ ์นผ๋กœ๋ฆฌ๋ฅผ ๋„ฃ์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋งจ ๋’ค์— ํ™•์žฅ์ž๋งŒ csv๋กœ ๋ฐ”๊พธ์–ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์„ ์ฝ์–ด์„œ ์ถœ๋ ฅํ•ด๋ณด๋ฉด,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import csv
 
with open('./test_csv/coffee.csv','r') as f:
 
    readtest_csv = csv.reader(f)
 
    for c in readtest_csv:   #๋ฐ˜๋ณต๋ฌธ์œผ๋กœ coffee.csvํŒŒ์ผ ๋‚ด์šฉ ์ถœ๋ ฅ
        print(c)
 
================================================================================================================
 
>>PS C:\test_1> & C:/Users/hellg/AppData/Local/Programs/Python/Python38/python.exe c:/test_1/test_csv/test_1.py
['๋ธ”๋ž™์ปคํ”ผ '' 0kcal']
['์นดํ‘ธ์น˜๋…ธ '' 100kcal']
['์บ”์ปคํ”ผ '' 57kcal']
['์นดํŽ˜์˜ค๋ ˆ '' 57kcal']
['์†Œ์ฃผํ•œ์ž” '' 90kcl']
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ์ถœ๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

2. delimiter (๊ตฌ๋ถ„๋ฌธ์ž) ์˜ต์…˜

delimiter์€ ๋ง๊ทธ๋Œ€๋กœ ์–ด๋–ค ๋ฌธ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌํš์„ ๋‚˜๋ˆŒ์ง€ ์ •ํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ์—” ์ปด๋งˆ๋Œ€์‹  @๋กœ ์ž‘์„ฑํ•ด์„œ ์ถœ๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import csv
 
with open('./test_csv/coffee.csv','r') as f:
    readtest_csv = csv.reader(f)
    for c in readtest_csv:  #๋ฐ˜๋ณต๋ฌธ์œผ๋กœ coffee.csvํŒŒ์ผ ๋‚ด์šฉ ์ถœ๋ ฅ
        print(c)
 
================================================================================================================
 
>>
['๋ธ”๋ž™์ปคํ”ผ @ 0kcal']
['์นดํ‘ธ์น˜๋…ธ @ 100kcal']
['์บ”์ปคํ”ผ @ 57kcal']
['์นดํŽ˜์˜ค๋ ˆ @ 57kcal']
['์†Œ์ฃผํ•œ์ž” @ 90kcl']
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

์ปด๋งˆ๊ฐ€ ์—†์œผ๋‹ˆ๊นŒ ํ•œ์ค„์ด ํ†ต์งธ๋กœ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ delimiter์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์ฒ˜๋Ÿผ ๋ฉ๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import csv
 
with open('./test_csv/coffee.csv','r') as f:
    readtest_csv = csv.reader(f, delimiter = '@')   #๊ตฌํš๋ฌธ์ž
    for c in readtest_csv:
        print(c)
 
 
================================================================================================================
 
>>
['๋ธ”๋ž™์ปคํ”ผ '' 0kcal']
['์นดํ‘ธ์น˜๋…ธ '' 100kcal']
['์บ”์ปคํ”ผ '' 57kcal']
['์นดํŽ˜์˜ค๋ ˆ '' 57kcal']
['์†Œ์ฃผํ•œ์ž” '' 90kcl']
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

@๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• ๋˜์–ด ์ถœ๋ ฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

3. ๋”•์…”๋„ˆ๋ฆฌ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ csv.DictReader(f)

4๋ฒˆ์ค„ ๋ช…๋ น์–ด์˜ csv.reader(f) ๋Œ€์‹ , csv.DictReader(f)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด dictionaryํ˜•ํƒœ๋กœ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.

4. writerow๋กœ csvํŒŒ์ผ ์“ฐ๊ธฐ.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import csv
 
= [[11,1,2,3,4],['a','b','c','d','e'],[1,2,3,4,5]]
with open('./test_csv/coffee.csv','w', newline='') as f:   
# newline์˜ต์…˜์€ ์ค„๋ฐ”๊ฟˆ์„ ์—†์• ์ค๋‹ˆ๋‹ค. newline์ด ์—†์œผ๋ฉด ์ค„๋ฐ”๊ฟˆ์ด ์ƒ๊น๋‹ˆ๋‹ค.
    wt = csv.writer(f)
    for v in w:
        wt.writerow(v)
 
================================================================================================================
 
>>
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

๋ฎ์–ด์”Œ์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ๊ธˆ๊นŒ์ง€ ์กด์žฌํ–ˆ๋˜ ์ปคํ”ผ์นผ๋กœ๋ฆฌ์˜ ๋‚ด์šฉ์€ ์‚ฌ๋ผ์ง€๊ณ  ๋ณ€์ˆ˜ w์— ์ €์žฅ๋œ ๋ฌธ์ž์—ด๋“ค์ด ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค.

5. writerows ๋กœ for๋ฌธ ์—†์ด csvํŒŒ์ผ ๋ฐ”๋กœ์“ฐ๊ธฐ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import csv
 
= [[11,1,2,3,4],['a','b','c','d','e'],[1,2,3,4,5]]
with open('./csvwrite_1.csv','w', newline='') as f:
    wt = csv.writer(f)
    wt.writerows(w)  #for๋ฌธ ์—†์ด ๋ฐ”๋กœ์“ฐ๊ธฐ.
 
================================================================================================================
 
>>
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 4๋ฒˆ๊ณผ ๊ฒฐ๊ณผ๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค. 

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.