μμΈμ²λ¦¬
νμ΅λͺ©ν
- μμΈμ κ°λ κ³Ό μ¬λ‘μ λν΄ μμλ³Έλ€.
- μμΈ‘ κ°λ₯ν μμΈμ μμΈ‘ λΆκ°λ₯ν μμΈμ λν΄ μ΄ν΄νλ€.
- νμΌμ κ°λ κ³Ό μ’ λ₯μ λν΄ νμ΅νλ€.
- νμΌμ μ½κ³ μ°λ λ°©λ²μ μ€μ΅νκ³ , pickle λͺ¨λμ λν΄ μμλ³Έλ€.
01 μμΈμ²λ¦¬
- μμΈμ κ°λ κ³Ό μ¬λ‘
μμΈ(exception) : νλ‘κ·Έλ¨μ κ°λ°νλ©΄μ μμνμ§ λͺ»ν μν©μ΄ λ°μνλ κ²
EX)
- μ¬μ©μμ μ λ ₯ μ€λ₯ → νλ‘κ·Έλλ¨Έμ μ€μλ‘ μΈμ½λ©μ λ¬Έμ λ°μ
- μλ μ μ₯autosave κΈ°λ₯ → μμ νλ μ€ κ°μκΈ° μ»΄ν¨ν°κ° μ’ λ£λμμ λλ₯Ό λλΉνμ¬ μμ ν κ²μ μ€κ°μ μλμΌλ‘ μ μ₯ν΄μ£Όλ κΈ°λ₯
- μμΈ‘ κ°λ₯ν μμΈμ μμΈ‘ λΆκ°λ₯ν μμΈ
- μμΈ‘ κ°λ₯ν μμΈ
→ λ°μ μ¬λΆλ₯Ό κ°λ°μκ° μ¬μ μ μΈμ§ν μ μλ μμΈ
ex) ν μ€νΈ λ°μ€μ μ¬μ©μκ° μ€μλ‘ μλͺ»λ κ°μ μ λ ₯ν κ² κ°λ€, μ¬μ©μκ° μ€μ λ‘ μ‘΄μ¬νμ§ μλ νμΌμ μ μ₯ν κ² κ°λ€ λ±… κ°λ°μκ° μ¬μ μ μμΈ‘ν μ μλ κ²
⇒ κ°λ°μλ μμΈλ₯Ό μμΈ‘νμ¬ λͺ μμ μΌλ‘ μμΈκ° λ°μν λλ μ΄λ»κ² λμνλΌκ³ λμ± λ§λ ¨ κ°λ₯
- μμΈ‘ λΆκ°λ₯ν μμΈ
ex) λ§€μ° λ§μ νμΌμ μ²λ¦¬ν λ
⇒ μΈν°ν리ν°κ° μλμΌλ‘ μμΈλΌκ³ μ¬μ©μμκ² μλ €μ€
νλ‘κ·Έλ¨λ μΌμ’ μ μ νμ΄λ―λ‘ μ νμ μμ±λλ₯Ό λμ΄λ μ°¨μμμ μμΈ μ²λ¦¬λ μ€μνλ€.
- μμΈ μ²λ¦¬ ꡬ문
- try-except문
μμΈ μ²λ¦¬μ κΈ°λ³Έ λ¬Έλ²
try:
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
λ§μ½ μ¬κΈ°μ tryλ¬Έμ΄ forλ¬Έ λ°μ μμΌλ©΄ μ΄λ€ μΌμ΄ λ°μν κΉ?
-> λ°λ³΅λ¬Έ μ μ²΄κ° μ’ λ£
tryλ¬Έ λ΄λΆμμ μμΈ λ°μ → exceptλ¬Έ μμμ μλ μ½λ μ€ν→ tryexceptλ¬Έ μ’ λ£
- try-except-else문
if-elseλ¬Έκ³Ό λΉμ·ν¨. ν΄λΉ μμΈκ° λ°μνμ§ μλ κ²½μ° μνν μ½λλ₯Ό elseλ¬Έμ μμ±
try:
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
else:
μμΈκ° λ°μνμ§ μμ λ μ€νλλ μ½λ
μλ¬κ° λ°μνμ§ μλ κ²½μ°μ μνλ¬Έμ μ μν΄ λμΌλ©΄ μλ¬κ° λ°μνμ§ μλ κ²½μ°μλ μΌμ΄λ μΌμ μ¬μ©μκ° μ νν μμΈ‘ν μ μλ€!
but λ§μ΄ μ¬μ©νμ§ μλ μ½λ
- try-except-finally문
try:
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
finally:
μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ μ€νλλ μ½λ
finallyλ¬Έ : try-exceptλ¬Έ μμ μλ μν μ½λκ° μλ¬΄λ° λ¬Έμ μμ΄ μ’ λ£λμμ κ²½μ° μ΅μ’ μΌλ‘ νΈμΆνλ μ½λ (forλ¬Έμμ μ¬μ©νλ finallyλ¬Έκ³Ό μ©λκ° λΉμ·)
- raise문
νμν λ μμΈλ₯Ό λ°μμν€λ μ½λ
raise μμΈ νμ
οΌμμΈ μ 보οΌ
- assert문
미리 μμμΌ ν μμΈ μ λ³΄κ° μ‘°κ±΄μ λ§μ‘±νμ§ μμ κ²½μ° μμΈλ₯Ό λ°μμν΄
assertλ¬Έμ True λλ Falseμ λ°νμ΄ κ°λ₯ν ν¨μλ₯Ό μ¬μ©→ Falseκ° λ°νλλ©΄ μμΈκ° λ°μνλ€.
assert μμΈ μ‘°κ±΄
02 νμΌ λ€λ£¨κΈ°
- νμΌμ κ°λ
- νμΌ: μ»΄ν¨ν°λ₯Ό μ€νν λ κ°μ₯ κΈ°λ³Έμ΄ λλ λ¨μ → νλ‘κ·Έλ¨μ μ€ννλ κ²μ λ νμΌμ μ€ννλ κ²μ΄λ€.
- νμΌμ μ’
λ₯κΈ°λ³Έμ μΌλ‘ λ°μ΄λ리 νμΌκ³Ό ν
μ€νΈ νμΌ λ κ°μ§λ‘ λΆλ₯ν μ μλ€.
- λ°μ΄λ리 νμΌ(binary file)
- → λΉνΈ ννλ‘ μ μ₯λμ΄ λ©λͺ¨μ₯μΌλ‘ μ΄λ©΄ λ΄μ©μ΄ 보μ΄μ§ μκ±°λ λ΄μ©μ νμΈν μ μλ νμΌ
- ν μ€νΈ νμΌ(text file)
μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμμ΄λ‘ μ μ₯λ νμΌ
→ λ©λͺ¨μ₯μΌλ‘ κ·Έ λ΄μ©μ νμΈν μ μλ€.
ex) νμ΄μ¬ νμΌ, μλ νλ‘κ·Έλ¨
- νμΌ μ½κΈ°
open( ) ν¨μ μ¬μ©
f =open("νμΌλͺ
", "νμΌ μ΄κΈ° λͺ¨λ")
f.close()
νμΌμ μ¬λ λͺ¨λμλ μ½κΈ° λͺ¨λ, μ°κΈ° λͺ¨λ, μΆκ° λͺ¨λ λ±μ΄ μλ€.
νμ΄μ¬μμλ μν©μ λ°λΌ μ΄λ¬ν νμμ μ‘°ν©
- νμΌ μ½κΈ°
f = open ("dream .txt", "r")
contents = f.read()
print(contents)
f.close()
→ 1. open() ν¨μ λ€μμ νμΌλͺ κ³Ό ‘r’μ μ λ ₯ν΄ νμΌμ λν μ 보λ₯Ό λ³μ fμ μ μ₯ (νμΌ κ°μ²΄)
2. λ³μ fλ₯Ό μ΄μ©ν΄ read() ν¨μ μ€ν : ν΄λΉ νμΌμ ν μ€νΈλ₯Ό contents λ³μμ λ¬Έμμ΄λ‘ μ μ₯
3. contents λ³μμ λ΄μ©, μ¦ ‘dream.txt’ νμΌμ μλ ν μ€νΈλ₯Ό νλ©΄μ μΆλ ₯νλ€.
4. close() ν¨μλ₯Ό μ¬μ©νμ¬ νμΌμ μ’ λ£νλ€.
ν μ€νΈ νμΌμ λ€λ£° λ μ΄λ―Έ μμ νκ³ μλ νμΌμ λ€λ₯Έ νλ‘κ·Έλ¨μμ λμμ νΈμΆνλ©΄ μλ¬ λ°μ
νλμ νμ΄μ¬ νλ‘κ·Έλ¨μ΄ νλμ νμΌμ μ¬μ©ν λ μ¬μ©μ μλ£νλ©΄ λ°λμ ν΄λΉ νμΌμ μ’ λ£ν΄μΌ νλ€.
2. withλ¬Έκ³Ό ν¨κ» μ¬μ©νκΈ°
withλ¬Έκ³Ό ν¨κ» open() ν¨μλ₯Ό μ¬μ©ν μ μλ€.
withλ¬Έμ λ€μ¬μ°κΈ°λ₯Ό νλ λμμλ open()ν¨μκ° μ μ§λκ³ , λ€μ¬μ°κΈ°κ° λλλ©΄ open() ν¨μλ μ’ λ£
μ°¨μ΄μ : close() ν¨μλ₯Ό λͺ μμ μΌλ‘ μ°μ§ μμλ νμΌμ μ¬μ©μ μ’ λ£ν μ μλ€ νΉν ν΄λΉ νμΌ κ°μ²΄λ =λ‘ ν λΉνλ λ°©μμ΄ μλλΌ asλ¬Έμ μ¬μ©νμ¬ λ³μλͺ μ ν λΉ
with open ("dream.txt ","r") as my_file:
contents = my_file.read()
print(type(contents), contents)
3. ν μ€μ© μ½μ΄ 리μ€νΈνμΌλ‘ λ°ννκΈ°
readlines() ν¨μλ₯Ό μ¬μ©νμ¬ ν μ€μ© λ΄μ©μ μ½μ΄μ λ¬Έμμ΄ ννλ‘ μ μ₯ν μ μλ€.
ν μ€μ κΈ°μ€μ \nμΌλ‘ λλμ΄μ§κ³ 리μ€νΈλ‘ λ°νλ λ forλ¬Έ λ± λ€μν ννλ‘ νμ©ν μ μλ€.
with open("dream.txt","r") as my_file:
content_list =my_file.readlines() # νμΌ μ 체λ₯Ό 리μ€νΈλ‘ λ°ν
print(type(content_Ust)) # μλ£ν νμΈ
print(content_list) # 리μ€νΈκ° μΆλ ₯
4. μ€νν λλ§λ€ ν μ€μ© μ½μ΄ μ€κΈ°
readline()λ μ€νν λλ§λ€ μ°¨λ‘λλ‘ ν μ€μ© μ½μ΄μ¨λ€.
with open("dream.txt", "r") as my_file:
i =0
while 1:
line = my_file.readline()
if not line:
break
print(str(i)+" === "+ line.replace("\\n","")) # ν μ€μ© κ° μΆλ ₯
i =i + 1
5. νμΌμ μ μ₯λ κΈμμ ν΅κ³ μ 보 μΆλ ₯νκΈ°
νμΌμ μ μ₯λ ν μ€νΈμ ν΅κ³ μ 보λ₯Ό μ½μ΄μμΌ ν λ → split() ν¨μμ len() ν¨μλ₯Ό ν¨κ» μ¬μ©
with open("dream.txt", "r") as my_file:
contents = my_file.read()
word_list = contents.split("") # λΉμΉΈ κΈ°μ€μΌλ‘ λ¨μ΄λ₯Ό λΆλ¦¬νμ¬ λ¦¬μ€νΈ
line_list = contents.split("\\n") # ν μ€μ© λΆλ¦¬νμ¬ λ¦¬μ€νΈ
print("μ΄ κΈμμ μ:", len(contents))
print("μ΄ λ¨μ΄μ μ:", len(word_list))
print("μ΄ μ€μ μ:,', len(line_list))
- νμΌ μ°κΈ°
μΈμ½λ© : ν μ€νΈ νμΌμ μ μ₯ν λ μ¬μ©νλ νμ€μ μ§μ
μΈμ½λ© μ΅μ μΌλ‘ μΈμ½λ© νμ€μ μ§μ ν μ μλ€. μΌλ°μ μΌλ‘ μΈμ½λ©μ utf-8μ λ§μ΄ μ¬μ©νλ©°, νμΌμ μλμ°μμλ§ μ¬μ©νλ€λ©΄ cp949λ μ¬μ©
μΈμ½λ©μ μ΄μ체μ λ νμΌμ μ¬μ© νκ²½μ λ°λΌ λ€λ₯΄κ² μ€μ ν΄μΌ νλ€.
- pickle λͺ¨λ
μμν(persistence) : νμν κ°μ²΄λ₯Ό νμΌλ‘ μ μ₯μμΌ λ€μ μ¬μ©ν μ μλλ‘ νλ κ²
νμ΄μ¬μ pickle λͺ¨λμ μ 곡νμ¬ λ©λͺ¨λ¦¬μ λ‘λ©λ κ°μ²΄λ₯Ό μμνν μ μλλ‘ μ§μνλ€.
pickle λͺ¨λμ μ¬μ©νκΈ° μν΄μ νΈμΆν ν κ°μ²΄λ₯Ό μ μ₯ν μ μλ νμΌμ μ΄κ³ μ μ₯νκ³ μ νλ κ°μ²΄ dump νλ€. νμΌμ μμ±ν λλ ‘w’κ° μλ ‘Wb’λ‘ μ΄μ΄μΌ ν¨! (μ¬κΈ°μ Bλ λ°μ΄λ리λ₯Ό λ»νλ μ½μ) dump() ν¨μμμλ μ μ₯ν κ°μ²΄, μ μ₯λ νμΌ κ°μ²΄λ₯Ό μ°¨λ‘λλ‘ μΈμλ‘ λ£μΌλ©΄ ν΄λΉ κ°μ²΄κ° ν΄λΉ νμΌμ μ μ₯λλ€.