ํ์ผ ์ ์ถ๋ ฅ
ํ์ด์ฌ์ ํตํด, ์์คํ
์ ํ์ผ์ ์
๋ ฅํ๊ณ ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ์ ์์๋ด
๋๋ค.
โข
ํ์ผ ์
์ถ๋ ฅ ๊ด๋ จ ๋ชจ๋
โข
ํ์ผ ์
์ถ๋ ฅ ํจ์
โข
open() ํจ์
โข
ํ
์คํธ ํ์ผ
โฆ
ํ
์คํธ ํ์ผ ์์ฑ
โฆ
ํ
์คํธ ํ์ผ ์ถ๊ฐ ์์ฑ
โฆ
ํ
์คํธ ํ์ผ ์ฝ๊ธฐ
โข
ํ์ผ ์ญ์
โข
ํ์ผ ๋ณต์ฌ
โข
CSV ํ์ผ
โฆ
CSV ํ์ผ ์์ฑ
โฆ
CSV ํ์ผ ์ฝ๊ธฐ
ํ์ผ ์ ์ถ๋ ฅ ๊ด๋ จ ๋ชจ๋
๋ชจ๋ | ์ค๋ช
|
open() | ํ์ผ์ ์ด ๋ ์ฌ์ฉ๋๋ ํจ์. ํ์ผ์ ์ด๊ฑฐ๋ ์์ฑํ๊ณ ํ์ผ ๊ฐ์ฒด๋ฅผ ๋ฐํ |
os | ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ์ ๊ด๋ จ๋ ๋ค์ํ ์์
์ ์ํํ๋ ํจ์๋ค์ด ์๋ ๋ชจ๋ |
shutil | ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ ๊ด๋ฆฌ์ ์ฌ์ฉ๋๋ ๊ณ ์์ค์ ํ์ผ ์์
์ ์ํํ๋ ํจ์๋ค์ด ์๋ ๋ชจ๋ |
pathlib | ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฐ์ฒด ์งํฅ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๋ชจ๋ |
ํ์ผ ์ ์ถ๋ ฅ ํจ์
ํจ์ | ์ค๋ช
|
open() | ํ์ผ์ ์ด ๋ ์ฌ์ฉ๋๋ ํจ์๋ก, ํ์ผ ๊ฒฝ๋ก์ ์ต์
์ ์ธ์๋ก ๋ฐ์ต๋๋ค. |
read() | ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ต๋๋ค. |
write() | ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์๋๋ค. |
close() | ํ์ผ์ ๋ซ์ต๋๋ค. |
readline() | ํ์ผ์์ ํ ์ค์ฉ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ต๋๋ค. |
readlines() | ํ์ผ์์ ๋ชจ๋ ์ค์ ์ฝ์ด์ ๋ฆฌ์คํธ๋ก ๋ฐํํฉ๋๋ค. |
open() ํจ์
ํ์ผ ์ด๊ธฐ ํจ์
open ํจ์ ์ฌ์ฉํ๊ธฐ
open(ํ์ผ๋ช
, ๋ชจ๋, ์ต์
)
โข
ํ์ผ๋ช
: ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ง์
โข
๋ฐํ๊ฐ : file ๊ฐ์ฒด
โข
๋ชจ๋ : ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ถ๊ฐ ๋ชจ๋ ๋ฐ ํ
์คํธ, ๋ฐ์ด๋๋ฆฌ ๋ชจ๋ ์ง์
โข
์ต์
: encoding, newline, buffering, errors
๋ชจ๋
๋ชจ๋ | ์ค๋ช
|
r | ์ฝ๊ธฐ ๋ชจ๋ |
w | ์ฐ๊ธฐ ๋ชจ๋ |
a | ์ถ๊ฐ ๋ชจ๋ |
t | ํ
์คํธ ๋ชจ๋ |
b | ๋ฐ์ด๋๋ฆฌ ๋ชจ๋ (2์ง ๋ชจ๋) |
๋ชจ๋ | ์ค๋ช
|
rt | ํ
์คํธ ์ฝ๊ธฐ ๋ชจ๋ |
wt | ํ
์คํธ ์ฐ๊ธฐ ๋ชจ๋ |
at | ํ
์คํธ ์ถ๊ฐ ๋ชจ๋ |
rb | ๋ฐ์ด๋๋ฆฌ ์ฝ๊ธฐ ๋ชจ๋ |
wb | ๋ฐ์ด๋๋ฆฌ ์ฐ๊ธฐ ๋ชจ๋ |
ab | ๋ฐ์ด๋๋ฆฌ ์ถ๊ฐ ๋ชจ๋ |
์ต์
์์ฑ | ์ค๋ช
|
encoding | ํ์ผ์ ์ธ์ฝ๋ฉํ๋ ํ์์ ์ง์ ํ๋ ์์ฑ |
newline | ํ์ผ์์ ์ฌ์ฉํ๋ ์ค ๋ฐ๊ฟ ๋ฌธ์๋ฅผ ์ง์ ํ๋ ์์ฑ |
buffering | ๋ฒํผ ์ฌ์ฉ ์ค์ ์ ํ๋ ์์ฑ (๋ฐ์ดํธ ๋จ์) |
errors | ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ ๊ณผ์ ์์ ๋ฐ์ํ๋ ์๋ฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ ์์ฑ |
ํ ์คํธ ํ์ผ
ํ
์คํธ ํ์ผ์ ์์ฑํ๊ณ , ๊ธฐ์กด ๋ด์ฉ์ ํ
์คํธ๋ฅผ ์ถ๊ฐํ๊ณ ์ฝ์ด์ค๋ ๊ณผ์ ์ ์์๋ด
๋๋ค.
ํ ์คํธ ํ์ผ ์์ฑ
ํ
์คํธ ์ฐ๊ธฐ ๋ชจ๋(wt)๋ก open()๋ฅผ ํธ์ถํ์ฌ file ๊ฐ์ฒด๋ฅผ ํตํด write() ํจ์๋ก ํ
์คํธ ๋ด์ฉ์ ์์ฑํ์ฌ ํ
์คํธ ํ์ผ์ ์์ฑํฉ๋๋ค.
path = 'C:/python/file/'
file = open(path + 'hello.txt', 'wt', encoding='UTF-8')
# ํ์ผ ๋ด์์ ์ถ๋ ฅ : write()
file.write('์๋
ํ์ธ์')
file.write('\n')
file.write('ํ์ผ ์
์ถ๋ ฅ ๋ด์ฉ์ ํ์ตํฉ๋๋ค')
print('ํ์ผ์ด ์์ฑ๋์์ต๋๋ค.')
# ํ์ผ ๋ซ๊ธฐ
file.close()
Python
๋ณต์ฌ
ํ ์คํธ ํ์ผ ์ถ๊ฐ ์์ฑ
ํ
์คํธ ์ถ๊ฐ ๋ชจ๋(at)๋ก open()๋ฅผ ํธ์ถํ์ฌ file ๊ฐ์ฒด๋ฅผ ํตํด write() ํจ์๋ก ํ
์คํธ ๋ด์ฉ์ ์์ฑํ์ฌ ํ
์คํธ ํ์ผ์ ์์ฑํฉ๋๋ค.
path = 'C:/python/file/'
# at : ์ถ๊ฐ๋ชจ๋ + ํ
์คํธ๋ชจ๋
file = open(path + 'hello.txt', 'at', encoding='UTF-8')
# ์ถ๊ฐํ ๋ด์ฉ
file.write('\n')
file.write('์ด์ด์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค')
file.write('\n')
file.write('ํ
์คํธ ํ์ผ ๋ด์ฉ ์ถ๊ฐ ๋ชจ๋ : at')
print('ํ์ผ์ ์๋ก์ด ๋ด์ฉ์ ์ถ๊ฐํ์์ต๋๋ค.')
# ํ์ผ ๋ซ๊ธฐ
file.close()
Python
๋ณต์ฌ
ํ ์คํธ ํ์ผ ์ฝ๊ธฐ
ํ
์คํธ ์ฝ๊ธฐ ๋ชจ๋(rt)๋ก open()๋ฅผ ํธ์ถํ์ฌ file ๊ฐ์ฒด๋ฅผ ํตํด read() ํจ์๋ก ํ
์คํธ ๋ด์ฉ์ ์์ฑํ์ฌ ํ
์คํธ ๋ด์ฉ์ ์ฝ์ด์ต๋๋ค.
path = 'C:/python/file/'
# rt : ์ฝ๊ธฐ๋ชจ๋ + ํ
์คํธ๋ชจ๋
# ์ฝ๊ธฐ๋ชจ๋ : r (read)
# ํ์ผ์ ํ : t (text)
file = open(path + 'hello.txt', 'rt', encoding='UTF-8')
while True:
# str = file.read(10) # ํ์ผ๋ก๋ถํฐ 10๊ธ์์ฉ ์ฝ์ด์จ๋ค.
str = file.readline() # ํ์ผ๋ก๋ถํฐ ํ ์ค ์ฉ ์ฝ์ด์จ๋ค.
if not str:
break
print(str, end='')
# ํ์ผ ๋ซ๊ธฐ - ๋ฉ๋ชจ๋ฆฌ ํด์
file.close()
Python
๋ณต์ฌ
ํ์ผ ์ญ์
os ๋ชจ๋์ ํตํด ํ์ผ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ํ์ผ์ ์ญ์ ํ ์ ์๋ค.
import os
path = 'C:/python/file/'
file = input('์ญ์ ํ ํ์ผ๋ช
: ')
file = path + file
# ํ์ผ ์กด์ฌ ํ์ธ
if os.path.exists(file):
# ํ์ผ ์ญ์
os.remove(file)
print('ํ์ผ์ด ์ญ์ ๋์์ต๋๋ค.')
Python
๋ณต์ฌ
ํ์ผ ๋ณต์ฌ
์๋ณธ ํ์ผ์ ์ฝ๊ธฐ ๋ชจ๋ ์
๋ ฅ ๋ฐ๊ณ , ์ ํ์ผ ๊ฒฝ๋ก๋ก ์ฐ๊ธฐ ๋ชจ๋๋ก ์ถ๋ ฅํ๋ ๊ฒ
์๋ณธ ํ์ผ --> ๋ณ์ --> ๋ณต์ฌ๋ณธ
(์ฝ๊ธฐ) (์ฐ๊ธฐ)
Plain Text
๋ณต์ฌ
ํ์ผ ๋ณต์ฌ ๊ณผ์
1.
์๋ณธ ํ์ผ ์ด๊ธฐ open()
2.
1024Bytes(1KB) ์ฉ ์ฝ๊ธฐ read()
3.
์ ํ์ผ ์ด๊ธฐ open()
4.
1024Bytes(1KB) ์ฉ ์ถ๋ ฅ write()
5.
์
๋ ฅ, ์ถ๋ ฅ ์ข
๋ฃ close()
๋ฒํผ(buffer)?
: ์์ ์ ์ฅ ๊ณต๊ฐ
with
ํ์ผ ์
์ถ๋ ฅ ์, ์๋์ผ๋ก close() ํจ์๋ฅผ ํธ์ถํ๋ค.
with open(ํ์ผ๊ฒฝ๋ก, ๋ชจ๋) as ํ์ผ ๊ฐ์ฒด:
์ฒ๋ฆฌ ์ฝ๋
์ฒ๋ฆฌ ์ฝ๋
์ฒ๋ฆฌ ์ฝ๋
Python
๋ณต์ฌ
path = 'C:/python/file/'
file = path + 'hello.txt'
copy = path + 'hello(๋ณต์ฌ).txt'
buffer_size = 1024 # ๋ฒํผ ์ฉ๋ : 1024Byte(1KB)
# source : ์๋ณธ ํ์ผ ๊ฐ์ฒด
# copyfile : ๋ณต์ฌ ํ์ผ ๊ฐ์ฒด
with open(file, 'rb') as source:
with open(copy, 'wb') as copyfile:
while True:
# ์๋ณธ ํ์ผ์ ๋ฒํผ์ฉ๋๋ง ์ฝ์ด์์ buffer ์ ์ ์ฅ
# buffer ์๋ 1KB ๋งํผ์ ํ์ผ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ
buffer = source.read(buffer_size)
if not buffer:
break
# 1KB ์ฉ ํ์ผ ์์ฑ
copyfile.write(buffer)
print(copy)
print('ํ์ผ์ด ๋ณต์ฌ๋์์ต๋๋ค.')
Python
๋ณต์ฌ
CSV(Comma-Separated Values) ํ์ผ
๋ฐ์ดํฐ๋ฅผ ์ผํ(,)๋ก ๊ตฌ๋ถํ์ฌ ์ ์ฅํ๋ ํ
์คํธ ํ์ผ ํ์
CSV ๋ชจ๋ ์ฃผ์ ํจ์
ํจ์ | ์ค๋ช
|
csv.reader() | CSV ํ์ผ์ ์ฝ๊ณ , ๊ฐ ํ์ ํ์ฑํ์ฌ ๋ฆฌ์คํธ๋ก ๋ฐํํ๋ ๋ฆฌ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. |
csv.writer() | CSV ํ์ผ์ ์ฐ๊ณ , ๊ฐ ํ์ CSV ํ์์ผ๋ก ์์ฑํ๋ ๋ผ์ดํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. |
csv.DictReader() | CSV ํ์ผ์ ์ฝ๊ณ , ๊ฐ ํ์ ๋์
๋๋ฆฌ๋ก ๋ฐํํ๋ ๋ฆฌ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. |
csv.DictWriter() | CSV ํ์ผ์ ์ฐ๊ณ , ๊ฐ ํ์ ๋์
๋๋ฆฌ ํ์์ผ๋ก ์์ฑํ๋ ๋ผ์ดํฐ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค. |
CSV ํ์ผ ์์ฑ
CSV ํ์ผ์ ์์ฑํ๊ธฐ ์ํด์ writer ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํจ์ | ์ค๋ช
|
writer.writerow(row) | ์ฃผ์ด์ง ๋ฆฌ์คํธ๋ ํํ row๋ฅผ CSV ํ์์ผ๋ก ํ์ผ์ ์๋๋ค. |
writer.writerows(rows) | ์ฃผ์ด์ง ๋ฆฌ์คํธ rows์ ๋ชจ๋ ํ์ CSV ํ์์ผ๋ก ํ์ผ์ ์๋๋ค. |
'''
CSV (Comma Separated Value)
: ์ฝค๋ง(,) ๋ถ๋ฆฌํ ๊ฐ๋ค
ex)
ํ๋ฒ,์ด๋ฆ,์ฃผ์,์ ํ๋ฒํธ
101,๊น์กฐ์,์์ธ์ ์๋ฑํฌ๊ตฌ,010-1111-2222
102,๊น์กฐ์,์์ธ์ ์๋ฑํฌ๊ตฌ,010-1111-2222
103,๊น์กฐ์,์์ธ์ ์๋ฑํฌ๊ตฌ,010-1111-2222
104,๊น์กฐ์,์์ธ์ ์๋ฑํฌ๊ตฌ,010-1111-2222
'''
import csv
path = 'C:/ALOHA/PYTHON'
file = path + 'test.csv'
# open(ํ์ผ๊ฒฝ๋ก, ๋ชจ๋, ์ต์
)
with open(file, 'w', newline='', encoding='UTF-8') as file:
# delimiter : ๊ตฌ๋ถ๊ธฐํธ
# writer(ํ์ผ๊ฐ์ฒด, delimiter="๊ตฌ๋ถ๊ธฐํธ")
# : ํ์ผ์ ์์ฑํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง writer ๊ฐ์ฒด๋ฅผ ๋ฐํ
csv_maker = csv.writer(file, delimiter=',')
# writer ๊ฐ์ฒด๊ฐ ๊ฐ์ง ๊ธฐ๋ฅ : writerow()
# : ํ์ผ๊ฐ์ฒด์ ํ ์ค์ฉ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ํจ์
csv_maker.writerow(['ํ๋ฒ', '์ด๋ฆ', '์ฃผ์', '์ ํ๋ฒํธ'])
csv_maker.writerow(['101', 'ALOHA', '์ธ์ฒ์ ๋ถํ๊ตฌ', '010-1111-2222'])
csv_maker.writerow(['102', 'ALOHA', '์ธ์ฒ์ ๋ถํ๊ตฌ', '010-1111-2222'])
csv_maker.writerow(['103', 'ALOHA', '์ธ์ฒ์ ๋ถํ๊ตฌ', '010-1111-2222'])
csv_maker.writerow(['104', 'ALOHA', '์ธ์ฒ์ ๋ถํ๊ตฌ', '010-1111-2222'])
print('ํ์ผ์ด ์์ฑ๋์์ต๋๋ค')
Python
๋ณต์ฌ
CSV ํ์ผ ์ฝ๊ธฐ
CSV ํ์ผ์ ์ฝ๊ธฐ ์ํด์ reader ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํจ์ | ์ค๋ช
|
reader.next() | ๋ค์ ํ์ ์ฝ์ด์ ํ์ฑํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. |
reader.__iter__() | ์ดํฐ๋ ์ดํฐ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. |
# csv ํ์ผ ์ฝ์ด์ค๊ธฐ
import csv
path = 'C:/ALOHA/PYTHON'
file = path + 'test.csv'
with open(file, 'r', newline='', encoding='UTF-8') as file:
# reader(ํ์ผ๊ฐ์ฒด, delimiter(๊ตฌ๋ถ๊ธฐํธ), quotechar(๋ฌธ์์ด๊ธฐํธ))
# quotechar : ๋๋๋ฉด ์๋๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ๊ธฐํธ๋ก ๋ฌถ์์ง ์ง์
csv_reader = csv.reader(file, delimiter=',', quotechar="'")
for line in csv_reader:
print(line)
Python
๋ณต์ฌ



