File Handling
๋๋ ํ ๋ฆฌ (Directory)
โข
ํด๋ ๋๋ ๋๋ ํ ๋ฆฌ๋ก ๋ถ๋ฆผ
โข
ํ์ผ๊ณผ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจํ ์ ์์
ํ์ผ (File)
โข
์ปดํจํฐ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ๋
ผ๋ฆฌ์ ์ธ ๋จ์ (wikipedia)
โข
โข
์คํ, ์ฐ๊ธฐ, ์ฝ๊ธฐ ๋ฑ์ ํ ์ ์์
ํ์ผ์ ์ข ๋ฅ
โข
๊ธฐ๋ณธ์ ์ธ ํ์ผ ์ข
๋ฅ๋ก text ํ์ผ๊ณผ binary ํ์ผ๋ก ๋๋
โข
์ปดํจํฐ๋ text ํ์ผ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด binary ํ์ผ๋ก ๋ณํ์ํด (์: pycํ์ผ)
โข
๋ชจ๋ text ํ์ผ๋ ์ค์ ๋ binary ํ์ผ,
ASCII/Unicode ๋ฌธ์์ด ์งํฉ์ผ๋ก ์ ์ฅ๋์ด ์ฌ๋์ด ์ฝ์ ์ ์์
ํ์ด์ฌ์์ ํ์ผ ์ด๊ธฐ
โข
ํ์ด์ฌ์ ํ์ผ ์ฒ๋ฆฌ๋ฅผ ์ํด โopenโ ํค์๋๋ฅผ ์ฌ์ฉํจ
ํ์ด์ฌ์์ ํ์ผ ์ฝ๊ธฐ
โข
read() txt ํ์ผ ์์ ์๋ ๋ด์ฉ์ ๋ฌธ์์ด๋ก ๋ฐํ
โข
with ๊ตฌ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ๊ธฐ
โข
ํ ์ค์ฉ ์ฝ์ด List Type์ผ๋ก ๋ฐํํจ
ํ์ด์ฌ์ directory ๋ค๋ฃจ๊ธฐ
โข
os ๋ชจ๋์ ์ฌ์ฉํ์ฌ Directory ๋ค๋ฃจ๊ธฐ
โข
๋๋ ํ ๋ฆฌ๊ฐ ์๋์ง ํ์ธํ๊ธฐ
โข
์ต๊ทผ์๋ pathlib ๋ชจ๋์ ์ฌ์ฉํ์ฌ path๋ฅผ ๊ฐ์ฒด๋ก ๋ค๋ฃธ
Pickle
โข
ํ์ด์ฌ์ ๊ฐ์ฒด๋ฅผ ์์ํ(persistence)ํ๋ built-in ๊ฐ์ฒด
โข
๋ฐ์ดํฐ, object ๋ฑ ์คํ์ค ์ ๋ณด๋ฅผ ์ ์ฅ๏จ๋ถ๋ฌ์์ ์ฌ์ฉ
โข
์ ์ฅํด์ผํ๋ ์ ๋ณด, ๊ณ์ฐ ๊ฒฐ๊ณผ(๋ชจ๋ธ) ๋ฑ ํ์ฉ์ด ๋ง์
Exception Handling
์์ธ ์ฒ๋ฆฌ
โข
์์ ๊ฐ๋ฅํ ์์ธ
โฆ
๋ฐ์ ์ฌ๋ถ๋ฅผ ์ฌ์ ์ ์ธ์งํ ์ ์๋ ์์ธ
โฆ
์ฌ์ฉ์์ ์๋ชป๋ ์
๋ ฅ, ํ์ผ ํธ์ถ ์ ํ์ผ ์์
โฆ
๊ฐ๋ฐ์๊ฐ ๋ฐ๋์ ๋ช
์์ ์ผ๋ก ์ ์ ํด์ผํจ
โข
์์์ด ๋ถ๊ฐ๋ฅํ ์์ธ
โฆ
์ธํฐํ๋ฆฌํฐ ๊ณผ์ ์์ ๋ฐ์ํ๋ ์์ธ, ๊ฐ๋ฐ์ ์ค์
โฆ
๋ฆฌ์คํธ์ ๋ฒ์๋ฅผ ๋์ด๊ฐ๋ ๊ฐ ํธ์ถ, ์ ์ 0์ผ๋ก ๋๋
โฆ
์ํ ๋ถ๊ฐ์ ์ธํฐํ๋ฆฌํฐ๊ฐ ์๋ ํธ์ถ
ํ๋ก๊ทธ๋จ = ์ ํ, ๋ชจ๋ ์๋ชป๋ ์ํฉ์ ๋์ฒ๊ฐ ํ์
์์ธ์ฒ๋ฆฌ ๋ฌธ๋ฒ ์ข ๋ฅ
1.
try ~ except ๋ฌธ๋ฒ + finally ์ด๋ else ํ์ฉ ๊ฐ๋ฅ
2.
raise ๊ตฌ๋ฌธ - ํ์์๋ฐ๋ผ๊ฐ์ ๋กException์๋ฐ์
3.
assert ๊ตฌ๋ฌธ - ํน์ ์กฐ๊ฑด์๋ง์กฑํ์ง์์๊ฒฝ์ฐ์์ธ๋ฐ์
4.
Built-in Exception : ๊ธฐ๋ณธ์ ์ผ๋ก์ ๊ณตํ๋์์ธ
Bulit in
Log Handling
Log๋จ๊ธฐ๊ธฐ - Logging
โข
์ ์ ์ ์ ๊ทผ, ํ๋ก๊ทธ๋จ์ Exception, ํน์ ํจ์์ ์ฌ์ฉ
โข
ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ์ผ์ด๋๋ ์ ๋ณด๋ฅผ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ธฐ
โข
Console ํ๋ฉด์ ์ถ๋ ฅ, ํ์ผ์ ๋จ๊ธฐ๊ธฐ, DB์ ๋จ๊ธฐ๊ธฐ ๋ฑ๋ฑ
โข
๊ธฐ๋ก๋ ๋ก๊ทธ๋ฅผ ๋ถ์ํ์ฌ ์๋ฏธ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ถ ํ ์ ์์
โข
์คํ์์ ์์ ๋จ๊ฒจ์ผ ํ๋ ๊ธฐ๋ก, ๊ฐ๋ฐ์์ ์์ ๋จ๊ฒจ์ผํ๋ ๊ธฐ๋ก
logging ๋ชจ๋
โข
Python์ ๊ธฐ๋ณธ Log ๊ด๋ฆฌ ๋ชจ๋
logging Level
โข
ํ๋ก๊ทธ๋จ ์งํ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅธ Level์ Log๋ฅผ ์ถ๋ ฅํจ
โข
๊ฐ๋ฐ ์์ , ์ด์ ์์ ๋ง๋ค ๋ค๋ฅธ Log๊ฐ ๋จ์ ์ ์๋๋ก ์ง์ํจ
โข
DEBUG > INFO > WARNING > ERROR > Critical
โข
Log ๊ด๋ฆฌ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ์ค์ ์ ๋ณด
*์ค์ ํ๋ก๊ทธ๋จ ์คํํ ๋ ์ฌ๋ฌ ์ค์ ํ์
-๋ฐ์ดํฐ ํ์ผ์์น
-ํ์ผ ์ ์ฅ ์ฅ์
-operation Type ๋ฑ๋ฑ
*๋ฐฉ๋ฒ ํ์ (๋๊ฐ์ง)
1.configparser -ํ์ผ์
2.argparser - ์คํ์์ ์
configparser
โข
ํ๋ก๊ทธ๋จ์ ์คํ ์ค์ ์ file์ ์ ์ฅํจ
โข
Section, Key, Value ๊ฐ์ ํํ๋ก ์ค์ ๋ ์ค์ ํ์ผ์ ์ฌ์ฉ
โข
์ค์ ํ์ผ์ Dict Type์ผ๋ก ํธ์ถํ ์ฌ์ฉ
configparser file
config file
argparser
โข
Console ์ฐฝ์์ ํ๋ก๊ทธ๋จ ์คํ์ Setting ์ ๋ณด๋ฅผ ์ ์ฅํจ
โข
๊ฑฐ์ ๋ชจ๋ Console ๊ธฐ๋ฐ Python ํ๋ก๊ทธ๋จ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต
โข
ํน์ ๋ชจ๋๋ ๋ง์ด ์กด์ฌํ์ง๋ง(TF), ์ผ๋ฐ์ ์ผ๋ก argparse๋ฅผ ์ฌ์ฉ
โข
Command-Line Option ์ด๋ผ๊ณ ๋ถ๋ฆ
Logging ์ ์ฉํ๊ธฐ
Logging formmater
โข
Log์ ๊ฒฐ๊ณผ๊ฐ์ format์ ์ง์ ํด์ค ์ ์์