μ°Έκ³ λμ : λ°μ΄ν° κ³Όνμ μν νμ΄μ¬ νλ‘κ·Έλλ°, μ΅μμ²
μμΈμ κ°λ κ³Ό μ¬λ‘
μμΈ : νλ‘κ·Έλ¨μ κ°λ°νλ©΄μ μμμΉ λͺ»ν μν©μ΄ λ°μνλ κ²
ex) μ¬μ©μμ μ λ ₯ μ€λ₯
μ¬μ©μκ° νκΈ μμ΄λ μμ± (μλ¬Έμ, μ«μλ§ μ§μνλ νλ‘κ·Έλ¨) → μ λ ₯λ νκΈμ΄ μ무 λ¬Έμ μμ΄ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λλ©΄ μ¬μ©μκ° ν΄λΉ μΉ μ¬μ΄νΈμ λ‘κ·ΈμΈνμ§ λͺ»ν μ μμ
νλ‘κ·Έλλ¨Έμ μ€μλ‘ μΈμ½λ©μ λ¬Έμ κ° λ°μνμ¬ λ°μ΄ν°λ² μ΄μ€μ νκΈμ΄ μλͺ» μ μ₯λ μ λ μκΈ° λλ¬Έ
ex) MS μ€νΌμ€μ μλ μ μ₯ κΈ°λ₯
κ°μκΈ° μ»΄ν¨ν°κ° μ’ λ£λμμ λλ₯Ό λλΉνμ¬ μμ λ¬Όμ μ€κ° μλ μ μ₯ν΄μ£Όλ κΈ°λ₯
μμΈ‘ κ°λ₯ν μμΈμ μμΈ‘ λΆκ°λ₯ν μμΈ
μμΈ‘ κ°λ₯ν μμΈ
λ°μ μ¬λΆλ₯Ό κ°λ°μκ° μ¬μ μ μΈμ§ν μ μλ μμΈ
μμΈλ₯Ό μμΈ‘νμ¬ λͺ μμ μΌλ‘ μμΈκ° λ°μν λλ μ΄λ»κ² λμν μ§ λμ± μ λ§λ ¨ν μ μμ
ex) ν μ€νΈ λ°μ€μ μ¬μ©μκ° μ€μλ‘ μλͺ»λ κ°μ μ λ ₯ν κ² κ°λ€
μ¬μ©μκ° μ€μ λ‘ μ‘΄μ¬νμ§ μλ νμΌμ μ μ₯ν κ² κ°λ€
μμΈ‘ λΆκ°λ₯ν μμΈ
λ§€μ° λ§μ νμΌμ μ²λ¦¬ν λ λ¬Έμ κ° λ°μν μ μμ
ex) 5,000κ°μ νμΌμ΄ ν λλ ν°λ¦¬μ μκ³ κ·Έ νμΌλͺ λ€μ λ겨λ°μ νμΌμ νλμ© μ½μ΄λ€μ΄λ νλ‘κ·Έλ¨
μ΄λ€ νμΌμ μ€μ λ‘ μμ λ΄μ©μ΄ μμ μ μλλ°, μ΄λ° κ²½μ°μλ μ΄λ€ μ²λ¦¬λ₯Ό νμ§ λͺ»νκ³ λμ΄κ°λ€
λ νμΌμ μ½κ³ μλλ° λ€λ₯Έ μ¬μ©μμ μν΄ ν΄λΉ νμΌμ΄ μμ λμ΄ μ½μ΄λ€μ΄λ μμ μ ν΄λΉ νμΌμ΄ μ¬λΌμ§λ κ²½μ°λ λ°μ
ex) μΈλ±μ€μ λ²μλ₯Ό λμ΄κ°λ 리μ€νΈμ νΈμΆ
μ μλ₯Ό 0μΌλ‘ λλλ κ² λ±μ λν λ¬Έμ
μΈν°ν리ν°κ° μλμΌλ‘ μ΄κ²μ΄ μμΈλΌκ³ μ¬μ©μμκ² μλ €μ€
λλΆλΆμ μ΄λ¬ν μμΈκ° λ°μνλ©΄μ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ―λ‘ μ μ ν μ‘°μΉλ₯Ό ν΄μΌ ν¨
λ¨μν νμΌμ΄ μλ€κ³ μλ €μ£Όλ κ²μ΄ μλλΌ νμΌμ΄ μκΈ° λλ¬Έμ μΆκ°λ‘ ν΄μΌ νλ μ‘° μΉκ° μλ€λ©΄ κ·Έκ²μ μμΈ μ²λ¦¬ ꡬ문μ μΆκ°ν΄μΌ ν¨
ex) <μ²λ¦¬ νμΌ X → κΈ°λ‘ → λ€μ νμΌ μ²λ¦¬> μμ±
- μμΈ μ²λ¦¬κ° μ€μν μ΄μ λ νλ‘κ·Έλ¨λ μΌμ’ μ μ νμ΄κΈ° λλ¬Έ
- μ νμ μμ±λλ₯Ό λμ΄λ μ°¨μμμ μ€μν κ°λ
μμΈ μ²λ¦¬ ꡬ문
try-except λ¬Έ
try:
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
for i in range(10)οΌ
tryοΌ
print(10 / i)
except ZeroDivisionError:
print("Not divided by 0")
Not divided by 0
10.0
5.0
3.3333333333333335
2.5
2.0
1.6666666666666667
1.4285714285714286
1.25
1.1111111111111112
tryλ¬Έμ΄ forλ¬Έ λ°μ μμΌλ©΄ μ΄λ€ μΌμ΄ λ°μν κΉ?
→ λ°λ³΅λ¬Έ μ μ²΄κ° μ’ λ£
tryλ¬Έ λ΄λΆμμ μμΈκ° λ°μνλ©΄ exceptλ¬Έ μμμ μλ μ½λκ° μ€νλκ³ tryexceptλ¬Έμ΄ μ’ λ£λλ€. μ΄λ κ² tryλ¬Έμ μ λΉνκ³³μ μ½μ νμ¬ μμΈ μ²λ¦¬λ₯Ό ν μ μμ
try-except-else λ¬Έ
if-else λ¬Έκ³Ό λΉμ·
ν΄λΉ μμΈκ° λ°μνμ§ μλ κ²½μ° μνν μ½λλ₯Ό elseλ¬Έμ μμ±νλ©΄ λ¨
tryοΌ
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
elseοΌ
μμΈκ° λ°μνμ§ μμ λ μ€νλλ μ½λ
for i in range(10):
tryοΌ
result = 10 / i
except ZeroDivisionErrorοΌ
printC"Not divided by 0")
elseοΌ
print(10 / i)
Not divided by 0
10.0
5.0
3.3333333333333335
2.5
2.0
1.6666666666666667
1.4285714285714286
1.25
1.1111111111111112
μλ¬κ° λ°μνμ§ μλ κ²½μ°μ μνλ¬Έμ μ μν΄ λμΌλ©΄ μλ¬κ° λ°μνμ§ μλ κ²½μ°μλ μΌμ΄λ μΌμ μ¬μ©μκ° μ νν μμΈ‘ν μ μλ€λ μ₯μ μ΄ μμ
νμ§λ§ μΌλ°μ μΌλ‘ λ§μ΄ μ¬μ©νμ§ μλ μ½λμ΄λ©° μμΈκ° λ§μ΄ λ°μνλ μν©μμ κ°νΉ μ¬μ©ν μ μλ μ½λ
ex) μλ²μ μνκ° λΆμν΄ μ°κ²° λκΉ connection lossμ΄ μμ£Ό λ°μνλ€λ©΄ μ°κ²°μ΄ λμμ λ μ² λ¦¬ν μ½λλ₯Ό λͺ νν νλ κ²μ΄ μ’μ
try-except-finally λ¬Έ
μ try—exceptλ¬Έ μμ μλ μν μ½λκ° μλ¬΄λ° λ¬Έμ μμ΄ μ’ λ£λμμ κ²½μ° μ΅μ’ μΌλ‘ νΈμΆνλ μ½λ
forλ¬Έμμ μ¬μ©νλ finallyλ¬Έκ³Ό μ©λκ° λΉμ·
tryοΌ
μμΈ λ°μ κ°λ₯ μ½λ
except μμΈ νμ
:
μμΈ λ°μ μ μ€νλλ μ½λ
finally:
μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ μ€νλλ μ½λ
tryοΌ
for i in range (1, 10)οΌ
result =10 // i
print(result)
except ZeroDivisionErrorοΌ
print("Not divided by 0")
finallyοΌ
print("μ’
λ£λμλ€.")
10
5
3
2
2
1
1
1
1
μ’
λ£λμλ€.
tryλ¬Έμ΄ forλ¬Έ λ°μ μ μΈλμ΄ μκ³ , λκ° 1λΆν° μμνλ€. μ¬μ€μ ZeroDivisionErrorκ° λ°μν μ μλ μ½λ
μ΄λ¬ν μ½λλ₯Ό μμ±νλ©΄ exceptλ¬Έμ μ€νλμ§ μκ³ λ§μ§λ§μΌλ‘ finallyλ¬Έλ§ μ€νλ¨
try-except-finallyλ¬Έλ forλ¬Έμμ finallyλ¬Έμ μ¬μ©νλ κ²κ³Ό λμΌνκ² μμΈ λ°μ μ¬λΆμ μκ΄μμ΄ λ°λμ μ€νλλ μ½λ
raise문
try—exceptλ¬Έκ³Ό λ¬λ¦¬ νμν λ μμΈλ₯Ό λ°μμν€λ μ½λ
ex)
while Trueλ¬Έμ μ¬μ©ν΄ κ³μ λ°λ³΅λ¬Έμ λλ €μΌ νλ νλ‘κ·Έλ¨μ μμ±νλ€κ³ κ°μ νμ.
μλλ°© μ»΄ν¨ν°μ κ³μ 무μμΈκ°λ₯Ό μμ²ν΄μΌ νλ νλ‘κ·Έλ¨μ΄κ³ , μμ²ν λλ§λ€ λΉμ©μ΄ μ²κ΅¬λλ€. λ§μ½ μλλ°© μ»΄ν¨ν°κ° κ³ μ₯λκ±°λ λ¬Έμ κ° μ겨 μ¬μ©νμ§ λͺ»νκ² λλ μν©μ΄ λ°μνλ€λ©΄ μ΄λ»κ² ν΄μΌ ν κΉ?
νλ‘κ·Έλ¨μ μμ±ν λ μλλ°© μ»΄ν¨ν°μμ μλ΅μ΄ μλ€λ©΄ κ°μ λ‘ νλ‘κ·Έλ¨μ΄ μ’ λ£λλλ‘ μμΈλ₯Ό λ°μ μν¬ μ μλ€
raise μμΈ νμ
οΌμμΈ μ 보οΌ
while TrueοΌ
value = input("λ³νν μ μκ°μ μ
λ ₯ν΄ μ£ΌμΈμ: ")
for digit in value:
if digit not in "0123456789"οΌ
raise ValueError("μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.")
print("μ μκ°μΌλ‘ λ³νλ μ«μ int(value))
λ³νν μ μκ°μ μ
λ ₯ν΄ μ£ΌμΈμ: 10
μ μκ°μΌλ‘ λ³νλ μ«μ -10
λ³νν μ μκ°μ μ
λ ₯ν΄ μ£ΌμΈμ: ab
Traceback (most recent call last):
File "raise.py’\\ line 5, inγmoduleγ
raise ValueError("μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.")
ValueErrorοΌ μ«μκ°μ μ
λ ₯νμ§ μμμ΅λλ€.
while Trueλ¬ΈμΌλ‘ λ°λ³΅λ¬Έμ΄ κ³μ λμκ°λ μνμμ μ¬μ©μμκ² μ λ ₯μ λ°μ
νμ§λ§ μ¬μ©μκ° μ λ ₯ν κ°μ΄ μ«μκ° μλ κ²½μ°μλ μ«μκ°μ μ λ ₯νμ§ μμλ€κ³ μΆλ ₯νλ©΄μ νλ‘κ·Έλ¨μ μ’ λ£νλ κ²μ λͺ©μ μΌλ‘ μμ±λ νλ‘κ·Έλ¨
μ΄λ, μλ¬μ μ’ λ₯λ ValueErrorλ‘ μ¬μ©μκ° μ λ ₯μ μλͺ»νμ λ μ λ ₯μ΄ μλͺ»λ κ²μ μλ €μ£Όλ©΄μ μ’ λ£
assert λ¬Έ
True λλ Falseμ λ°νμ΄ κ°λ₯ν ν¨μλ₯Ό μ¬μ©
Falseκ° λ°νλλ©΄ μμΈκ° λ°μ
assert μμΈ μ‘°κ±΄
def get_binary_number(decimal_number)οΌ
assert isinstance(decimal_number, int)
return bin(decimal_number)
print(get_binary_number(10))
print(get_binary_number("10"))
0bl010
Traceback (most recent caU last)οΌ
File "<CοΌ/.../assert.py>", line 5, in <module>
print(get_binary_number("10"))
File "CοΌ/.../assert.py", line 2, in get_binary_number
assert isinstance(decimal_number, int)
AssertionError
1 νμμ get_binary_number() ν¨μλ₯Ό ν΅ν΄ μμ§μλ₯Ό μ λ ₯λ°μ
νμ§λ§ ν¨μλ₯Ό μ¬μ©νλ μ¬μ©μκ° μλͺ»λ μΈμargument, μλ₯Ό λ€μ΄ λ¬Έμμ΄κ°μ μ λ ₯ν μλ μμ
μ΄λ₯Ό λ°©μ§νκΈ° μν΄ 2νμμ assertλ¬Έμ μ¬μ©νμλ€. isinstance() ν¨μλ μ λ ₯λ κ°μ΄ λ€μμ λμ€λ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§λ₯Ό νμΈνλ ν¨μ. μ΄ μ½λμμ decimal_number λ³μκ° μ μν μΈμ§λ 4γ 5νμμ νμΈ κ°λ₯ assertλ¬Έμ μ½λλ₯Ό μμ±ν λ μλͺ»λ μ λ ₯ μ¬λΆλ₯Ό μ¬μ μ νμΈνμ¬ λμ€μ νμ μλ μ°μ°μ λ§μμ£Όκ³ , κ²°κ΅ λ€λ₯Έ μ¬λμ΄ λ§λ μ½λλ₯Ό μ¬μ©νλ λ° μ’μ κ°μ΄λκ° λ¨
νμΌμ κ°λ
file : μ»΄ν¨ν°λ₯Ό μ€νν λ κ°μ₯ κΈ°λ³Έμ΄ λλ λ¨μ
νλ‘κ·Έλ¨μ μ€ννλ κ²μ λ νμΌμ μ€ννλ κ²
But, μΌλ°μ μΌλ‘ μλμ°μ GUI νκ²½μμλ μμ΄μ½μ λλΈν΄λ¦νμ¬ μ€νν¨
→ μ€μ λ‘λ μμ΄μ½κ³Ό μ°κ²°λ νμΌμ΄ μ€νλλ ꡬ쑰
- μμ΄μ½ → μ€λ₯Έμͺ½ λ§μ°μ€ → [μμ±]
‘λμ’ νλͺ©μ μ€νλλ νμΌμ κ²½λ‘κ° μμ
μ΄ κ²½λ‘λ₯Ό κ·Έλλ‘ λ³΅μ¬νμ¬ μ½μμ°½μ λΆμ¬λ£κ³ μ€ννλ©΄ ν΄λΉ νλ‘κ·Έλ¨μ΄ μ€νλ¨
λͺ¨λ νλ‘κ·Έλ¨μ μ΄λ κ² νμΌμ΄ μκΈ° λλ¬Έμ μ€νλλ κ²
νμΌμ μ’ λ₯
λ°μ΄λ리 νμΌ(binary file)
- μ»΄ν¨ν°λ§ μ΄ν΄ν μ μλ μ΄μ§ μ λ³΄λ‘ μ μ₯λ νμΌ
- λΉνΈ(bit) ννλ‘ μ μ₯λμ΄ λ©λͺ¨μ₯μΌλ‘ μ΄λ©΄ λ΄μ©μ΄ 보μ΄μ§ μκ±°λ λ΄μ©μ νμΈν μ μλ νμΌ
- μ 보μ ν¨μ¨μ μ μ₯μ μν΄ νμΌ μμ€ν λλΆλΆμ μ΄μ§ μ λ³΄λ‘ μ μ₯λ¨
- ex) μμ , μλ
ν μ€νΈ νμΌ(text file)
- μ¬λμ΄ μ΄ν΄ν μ μλ λ¬Έμμ΄λ‘ μ μ₯λ νμΌ
- λ©λͺ¨μ₯μΌλ‘ λ΄μ© νμΈ κ°λ₯
- ex) νμ΄μ¬, HTML μ½λ νμΌ
- μ»΄ν¨ν°κ° μ²λ¦¬νκΈ° μν΄ λ°μ΄λ리 ννλ‘ μ μ₯λ νμΌμ
- μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ ννλ‘ λ³κ²½νμ¬ μ μ₯λ¨ ex) μμ€ν€μ½λ, μ λμ½λ
- → λͺ¨λ λ¬Έμμ΄κ°λ μ λΆ μ΄μ§μλ‘ λ³κ²½νμ¬ μ μ₯
π‘ μΈμ½λ© : ν μ€νΈλ₯Ό λ³ν νμ€ μ²΄κ³μ λ§κ² μ μ₯νλ κ²
νμΌ μ½κΈ°
>>> f = open("νμΌλͺ
", "νμΌ μ΄κΈ° λͺ¨λ")
>>> f.close()
νμΌ μ½κΈ°
>>> f = open ("dream.txt", "r") # νμΌ κ°μ²΄
>>> contents = f.read() # ν΄λΉ νμΌμ ν
μ€νΈλ₯Ό contents λ³μμ λ¬Έμμ΄λ‘ μ μ₯
>>> print(contents) # ‘dream.txt’ νμΌμ μλ ν
μ€νΈλ₯Ό νλ©΄μ μΆλ ₯
>>> f.close() # νμΌ μ’
λ£
I have a dream a song to sing
to help me cope with anything
if you see the wonder of a fairy tale
you can take the future even
if you fail I believe in angels
something good in everything
λλλ‘ ν μ€νΈ νμΌμ λ€λ£° λ μ΄λ―Έ μμ νκ³ μλ νμΌμ λ€λ₯Έ νλ‘κ·Έλ¨μμ λμμ νΈμΆνλ©΄ μλ¬κ° λ°μ
νλμ νμ΄μ¬ νλ‘κ·Έλ¨μ΄ νλμ νμΌμ μ¬μ©ν λ μ¬μ©μ μλ£νλ©΄ λ°λμ ν΄λΉ νμΌμ μ’ λ£ν΄μΌ ν¨
withλ¬Έκ³Ό ν¨κ» μ¬μ©νκΈ°
>>> with open ("dream.txt ", "r") as my_fileοΌ
contents = my_file.read()
print(type(contents), contents)
<class 'str’> I have a dream a song to sing
to help me cope with anything
if you see the wonder of a fairy tale
you can take the future even
if you fail I believe in angels
something good in everything
withλ¬Έμ λ€μ¬μ°κΈ°λ₯Ό νλ λμμλ open() ν¨μκ° μ μ§λκ³ , λ€μ¬μ°κΈ°κ° λλλ©΄ open() ν¨μλ μ’ λ£λλ λ°©μ
close() ν¨μλ₯Ό λͺ μμ μΌλ‘ μ°μ§ μμλ νμΌμ μ¬μ©μ μ’ λ£ν μ μμ
ν΄λΉ νμΌ κ°μ²΄λ =λ‘ ν λΉνλ λ°©μμ΄ μλλΌ asλ¬Έμ μ¬μ©νμ¬ λ³μλͺ μ ν λΉ
ν μ€μ© μ½μ΄ 리μ€νΈνμΌλ‘ λ°ννκΈ°
>>> with open("dream.txt","r") as my_fileοΌ
content_list = my_file.readlines() # νμΌ μ 체λ₯Ό 리μ€νΈλ‘ λ°ν
print(type(content_list)) # μλ£ν νμΈ
print(content_list) # 리μ€νΈκ° μΆλ ₯
<class 'list'γ
['I have a dream a song to sing \\n', 'to help me cope with anything \\n', 'if you
see the wonder of a fairy tale \\n', 'you can take the future even \\n', 'if you
fail. I believe in angels \\n', 'something good in everything \\n']
νμΌ μ 체μ ν μ€νΈλ₯Ό λ¬Έμμ΄λ‘ λ°ννλ read() ν¨μ λμ , readlines() ν¨μλ₯Ό μ¬μ©νμ¬ ν μ€μ© λ΄μ©μ μ½μ΄μ λ¬Έμμ΄ ννλ‘ μ μ₯ κ°λ₯
ν μ€μ κΈ°μ€μ \n μΌλ‘ λλμ΄μ§κ³ 리μ€νΈλ‘ λ°νλ λ forλ¬Έ λ± λ€μν ννλ‘ νμ© κ°λ₯
μ€νν λλ§λ€ ν μ€μ© μ½μ΄ μ€κΈ°
>>> 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
0 === I have a dream a song to sing
1 === to help me cope with anything
2 === if you see the wonder of a fairy tale
3 === you can take the future even
4 === if you fail I believe in angels
5 === something good in everything
νμΌμ λ΄μ©μ μ°Ύλ€κ° μ€κ°μ λ©μΆ°μΌ ν νμκ° μλ λμ©λ λ°μ΄ν°μ μ¬μ©λλ μ½λ
νμΌμ μ μ₯λ κΈμμ ν΅κ³ μ 보 μΆλ ₯νκΈ°
νμΌμ μ μ₯λ λͺ¨λ ν μ€νΈλ₯Ό μ½μ΄μ¨ ν μ°¨λ‘λλ‘ κΈμ μ, λ¨μ΄ μ, μ€ μλ₯Ό μΆλ ₯νλ νλ‘κ·Έλ¨
>>> with open("dream.txt", "r") as my_file:
contents = my_life.read()
word_list = contents.split(" ") # λΉμΉΈ κΈ°μ€μΌλ‘ λ¨μ΄λ₯Ό λΆλ¦¬νμ¬ λ¦¬μ€νΈ
line_list = contents.split("\\n") # ν μ€μ© λΆλ¦¬νμ¬ λ¦¬μ€νΈ
>>>
>>> print("μ΄ κΈμμ μ:", len(contents))
>>> print("μ΄ λ¨μ΄μ μ:", len(word_list))
>>> print("μ΄ μ€μ μ:", len(line_list))
μ΄ κΈμμ μ 188
μ΄ λ¨μ΄μ μ: 35
μ΄ μ€μ μ: 7
νμΌ μ°κΈ°
μΈμ½λ© : ν μ€νΈ νμΌμ μ μ₯νκΈ° μν΄μλ μ μ₯ν λ μ¬μ©νλ νμ€μ μ§μ
- μΈμ½λ© μ΅μ μΌλ‘ μΈμ½λ© νμ€μ μ§μ ν μ μμ
- μΌλ°μ μΌλ‘ utf8μ λ§μ΄ μ¬μ©, νμΌμ μλμ°μμλ§ μ¬μ©νλ€λ©΄ cp949λ μ¬μ©
- μ΄μ체μ λ νμΌμ μ¬μ© νκ²½μ λ°λΌ λ€λ₯΄κ² μ€μ
>>> f = open("count_log.txt", 'w', encoding = "utf8")
>>> for i in range(l,ll)οΌ
data ="%dλ²μ§Έ μ€μ΄λ€.\\n"%i
f.write(data)
>>> f.close()
‘count_log.txt’λΌλ νμΌμ w’ μ΅μ μΌλ‘ μ½μ΄μ¨ ν
1λΆν° 10κΉμ§μ μ«μλ₯Ό λ£μ΄ ‘1 λ²μ§Έ μ€μ΄λ€.’λΆν° ‘10λ²μ§Έ μ€μ΄λ€.’κΉμ§ λ¬Έμμ΄μ λ§λ¦
f .write(data) μ½λλ‘ count_log.txt νμΌμ μ°¨λ‘λλ‘ κΈ°λ‘
λͺ¨λ λ΄μ©μ κΈ°λ‘ν νμ f.close() μ½λλ‘ ν΄λΉ νμΌμ λ«μ
νμΌ μ΄κΈ° λͺ¨λ aλ‘ μλ‘μ΄ κΈ μΆκ°νκΈ°
wλ λ μλ‘μ΄ νμΌμ μμ±
ex) κΈ°μ‘΄μ count_log.txt νμΌμ΄ μμμλ λ€μ νλ² wλ‘ νμΌμ λΆλ₯΄λ©΄ κΈ°μ‘΄ νμΌμ΄ μμ λκ³ μλ‘μ΄ νμΌμ΄ μ겨 μλ‘μ΄ λ΄μ©λ§ κΈ°λ‘ λ¨
κΈ°μ‘΄ νμΌμ κ³μ μΆκ°ν΄μΌ νλ μμ μ΄ μμ μ → μΆκ° λͺ¨λ aλ₯Ό μ¬μ©
>>> with open("count_log.txt", 'a', encoding = "utf8") as f:
for i in range(1,11):
data = "%dλ²μ§Έ μ€μ΄λ€.\\n" % i
f.write(data)
κΈ°μ‘΄μ countjog.txt νμΌμ΄ μλ€λ κ°μ μμ ‘a’ λͺ¨λλ‘ νμΌμ μΆ
μ½λλ₯Ό μνν λλ§λ€ ν΄λΉ νμΌμ ‘1 λ²μ§Έ μ€μ΄λ€.’λΆν° ‘10λ²μ§Έ μ€μ΄λ€.’λΌλ ν μ€νΈκ° κ³μ μΆκ° λ¨
λλ ν°λ¦¬ λ§λ€κΈ°
νμ΄μ¬μΌλ‘λ νμΌλ§ λ€λ£¨λ κ²μ΄ μλλΌ λλ ν°λ¦¬λ ν¨κ» λ€λ£° μ μμ
os λͺ¨λμ μ¬μ©νλ©΄ λλ ν°λ¦¬λ₯Ό μ½κ² λ§λ€ μ μμΌλ©° λλ ν°λ¦¬λ₯Ό μμ±νλ μ½λλ log
>>> import os
>>> os.mkdir("log")
νλ‘κ·Έλ¨ λλΆλΆμ΄ μλ‘ μ€νλλ―λ‘ κΈ°μ‘΄μ ν΄λΉ λλ ν°λ¦¬κ° μλμ§ νμΈνλ μ½λκ° νμ
>>> import os
>>> os.mkdir("log")
>>>
>>> if not os.path.isdir("log") # κΈ°μ‘΄ λλ ν°λ¦¬μ μ‘΄μ¬ μ¬λΆ νμΈ
os.mkdir("log")
Traceback (most recent call last)οΌ
File "mkdir2.py", line 2, in <modulo
os.mkdir("log")
FileExistsErrorοΌ οΌ»WinError 183οΌ½ νμΌμ΄ μ΄λ―Έ μμΌλ―λ‘ λ§λ€ μ μμ΅λλ€: 'log'
μ΄μ μ½λμμ log ν΄λλ₯Ό μμ±νμΌλ―λ‘ FileExistsErrorκ° κ²°κ³Όλ‘ μΆλ ₯
μ΄μ μ μμ±λ log ν΄λλ₯Ό μ§μ°λ©΄ log ν΄λκ° μμ±λ¨
λ‘κ·Έ νμΌ λ§λ€κΈ°
μ€μ νλ‘κ·Έλ¨μμ μ¬μ©ν μ μλ λ‘κ·Έ νμΌμ λ§λ€μ΄λ³΄μ
λ‘κ·Έ νμΌ : νλ‘κ·Έλ¨μ΄ λμνλ λμ μ¬λ¬ κ°μ§ μ€κ° κΈ°λ‘μ μ μ₯νλ μν μ νλ νμΌ
ex) μΉ νλ‘κ·Έλ¨μ κ²½μ° μΈλΆ μ μμμ μ μ κΈ°λ‘μ΄λ μ μ μκ° λ±μ μ μ₯νλ νμΌ
>>> import os
>>>
>>> if not os.path.isdir("log"):
os.mkdir("log")
>>>
>>> if not os.path.exists("log/count_log.txt"):
f = open("log/cont_log.txt", 'w', encoding = "utf8")
f.write("κΈ°λ‘μ΄ μμλλ€.\\n")
f.close()
>>>
>>> with open("log/count_log.txt", 'a', encoding = "utf8") as f:
import random, datetime
for i in range(1,11):
stamp = str(datetime.datetime.now())
value = random.random() * 1000000
log_line = stamp + "\\t" + str(value) + "κ°μ΄ μμ±λμλ€." + "\\n"
f.wirte(log_line)
log λλ ν°λ¦¬κ° μ‘΄μ¬νμ§ μμ κ²½μ° μλ‘κ² λλ ν°λ¦¬λ₯Ό λ§λ¦
λ κΈ°μ‘΄μ ν λ²λ λ‘κ·Έ κΈ°λ‘μ΄ μμλ€λ©΄ ‘w’ λͺ¨λλ‘ count_log.txt νμΌμ μμ±νκ³ κΈ°λ‘μ μμμ μ리λ 문ꡬλ₯Ό μ μ₯
μμλ₯Ό λ§λ€κΈ° μν΄ μμλ‘ μκ° κΈ°λ‘κ³Ό ν¨κ» μμμ μ«μλ₯Ό 문ꡬ μμ κ³μ κΈ°λ‘νμ¬ μ μ₯
λ± 10λ²μ κΈ°λ‘μ μννμ§λ§ μ€μ λ‘λ ν΄λΉ μ½λκ° νΈμΆν λλ§λ€ μκ°κ³Ό ν¨κ» μμμ μ«μκ° κ³μ κΈ°λ‘λ¨
pickle λͺ¨λ
νμ΄μ¬ νλ‘κ·Έλ¨μ μ€νν λ μμ±λλ μ¬λ¬ λ³μμ κ°μ²΄λ μκ°μ μΌλ‘ λ©λͺ¨λ¦¬μ λ‘λ©λμλ€κ° νλ‘κ·Έλ¨μ΄ μ’ λ£λλ©΄ μ¬λΌμ§
λλ‘λ μ΄λ κ² μ¬μ©λλ κ°μ²΄λ₯Ό μ μ₯μμΌ λκ³ νμν λ λ€μ λΆλ¬μΌ νλ κ²½μ°κ° μμ
- μμν : νμν κ°μ²΄λ₯Ό νμΌλ‘ μ μ₯μμΌ λ€μ μ¬μ©ν μ μλλ‘ νλ κ²
νμ΄μ¬μ pickle λͺ¨λμ μ 곡νμ¬ λ©λͺ¨λ¦¬μ λ‘λ©λ κ°μ²΄λ₯Ό μμνν μ μλλ‘ μ§μ
리μ€νΈμ λ€μ΄κ° λ°μ΄ν°λ ν΄λμ€μ μ€λΈμ νΈ λ±μ νμΌλ‘ μ μ₯μμΌ λμ€μ λ€μ μ¬μ©ν μ μλλ‘
μ μ₯ν΄μΌ νλ μ λ³΄κ° λ§μμ§κ³ κ³μ° κ²°κ³Όλ₯Ό μ μ₯νμλ€κ° λμ€μ λ€μ λΆλ¬ μ¬μ©ν κ²½μ°μλ μκΈ΄νκ² μΈ μ μλ κΈ°λ₯
>>> import pickle
>>>
>>> f = open("list.pickle, "wb")
>>> test = [1,2,3,4,5]
>>> pickle.dump(test,f) # (μ μ₯ν κ°μ²΄, μ μ₯λ νμΌ) -> ν΄λΉ κ°μ²΄κ° ν΄λΉ νμΌμ μ μ₯
>>> f.close()
νμΌμ μμ±ν λλ ‘w’κ° μλ ‘wb’λ‘ μ΄μ΄μΌ νλλ°. μ¬κΈ°μ Bλ λ°μ΄λ 리 binaryλ₯Ό λ»νλ μ½μλ‘ ν μ€νΈ νμΌμ΄ μλ λ°μ΄λ 리 νμΌλ‘ μ μ₯λλ€λ μλ―Έ
>>> f = open("list.pickle", "rb")
>>> test_pickle = pickle.load(f)
>>> print(test_pickle)
[1, 2, 3, 4, 5]
>> f.close
μ μ₯λ picle νμΌμ λΆλ¬μ€λ νλ‘μΈμ€
pickle κ°μ²΄λ₯Ό λΆλ¬μ¬ λ ν΄λΉ κ°μ²΄κ° μ΄λ€ κ°μ²΄μΈμ§μ λν μ λ³΄κ° μ ν μμ΄ μλΉν νΌλμ€λ¬μΈ λλ μμ§λ§, ν΄λΉ μ½λλ₯Ό κ°λ°ν κ°λ°μλΌλ©΄ μ½λμ μΈν°νμ΄μ€λ₯Ό μ νν μκ³ μμΌλ―λ‘ μ΄λ €μ μμ΄ μ¬μ©ν μ μμ
λ μμμ 리μ€νΈ κ°μ²΄λ₯Ό list.pickle νμΌμ μ μ₯νκΈ° λλ¬Έμ ν΄λΉ νμΌμ λΆλ¬ μ¬μ©ν λλ λμΌνκ² λ¦¬μ€νΈ κ°μ²΄κ° λ°ν
>>> class Mutltiply(object)οΌ
def __init__(self, multiplier)οΌ
self.multiplier = multiplier
def multiply(self, number)οΌ
return number * self.multiplier
>>> muliply =Mutltiply(5)
>>> muliply.multiply(10)
50
μ¬μ©μκ° μ§μ μμ±ν ν΄λμ€ κ°μ²΄λ μ μ₯
κ³±μ μ μ²λ¦¬νλ ν΄λμ€λ₯Ό μμ±
ν΄λμ€λ μ²μ κ°μ²΄λ₯Ό μμ±ν λ μ΄κΉκ°μ μμ±νκ³ , multiply() ν¨μλ₯Ό λΆλ₯Ό λλ§λ€ ‘μ΄κΉκ° * number’μ κ°μ νΈμΆνλ ν΄λμ€ (κ³±μ ν΄λμ€)
>>> import pickle
>>>
>>> f = open("multiply_object.pickle", "wb")
>>> pickle.dump(muliply, f)
>>> f.closeO
>>>
>>> f = open("multiply_object.pickle", "rb")
>>> multiply_pickle = pickle.load(f)
>>> multiply_pickle.multiply(5)
25
λ§€μ° λ³΅μ‘ν μ°μ°λ λ°λ‘ μ μ₯νμ¬ μ¬μ©ν λκ° μ‘΄μ¬
μ΄λ¬ν μ μ₯ λͺ¨λμ ν¨μ¨μ μΌλ‘ μ¬μ©νκΈ° μν΄ λ€μ μ½λμ²λΌ pickle λͺ¨λμ μ¬μ©
'π μ€ν°λ > νμ΄μ¬ μ€ν°λ κ°μμλ£' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[3ν/κΉκ·λ¦¬] 10μ°¨μ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.06.01 |
---|---|
[1ν/νκ·λ¦Ό] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.06.01 |
[2ν/κΉμΈμ°] 10μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - μμΈμ²λ¦¬ (0) | 2023.05.31 |
[2ν/κΉκ°λ¦Ό, μ΅λ€μ] 9μ°¨μ λͺ¨λκ³Ό ν¨ν€μ§ (0) | 2023.05.26 |
[3ν/κΉκ·λ¦¬] 9μ£Όμ°¨ νμ΄μ¬ μ€ν°λ - λͺ¨λκ³Ό ν¨ν€μ§ (0) | 2023.05.25 |