νμΌ μ μΆλ ₯
νμ΄μ¬μ ν΅ν΄, μμ€ν
μ νμΌμ μ
λ ₯νκ³ μΆλ ₯νλ λ°©λ²μ μμλ΄
λλ€.
β’
νμΌ μ
μΆλ ₯ κ΄λ ¨ λͺ¨λ
β’
νμΌ μ
μΆλ ₯ ν¨μ
β’
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 νμΌμ μ½κ² μ¬μ©ν μ μλ€.
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
볡μ¬