๋ชฉ์ฐจ
ํ์ด์ฌ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํ๊ณ ์คํ์ ํ ๋ ๋ง์ ๋ณ์๋ค์ด ์๊ฒผ๋ค๊ฐ ์ฌ๋ผ์ง๊ธฐ๋ ํ๊ณ ๋ณ์์ ๊ฐ๋ ๋ง์ ๋ณ๋์ด ์๋ค.
๋ํ ํ๋ก๊ทธ๋จ์ ์คํ์ด ๋๋๋ฉด ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ์ง๋ค.
์ด๋ ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ์ ํ๋ค๊ฐ ๋ค์ ์ฌ์ฉ์ ํ๋ค๊ฑฐ๋ ๋ค๋ฅธ ํ์ผ์์ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ณ ์ถ์ ๋.
๋ฐ๋ก pickle์ด ์ด๊ฒ์ ์ถฉ์กฑ์์ผ์ค๋ค.
pickle์ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ผ ํํ๋ก ์ ์ฅํ๊ฑฐ๋ ๋ถ๋ฌ์ฌ ์ ์๊ฒ ํด์ฃผ๋ ํ์ด์ฌ์ ๋ชจ๋์ด๋ค.
์ฌ์ฉ๋ฒ
import pickle
๋จผ์ pickle ๋ชจ๋์ importํด์ค๋ค.
1. ๋ฐ์ดํฐ ํ์ผ ์์ฑํ๊ธฐ
import pickle
๋ฐ์ดํฐํ์ผ๋ณ์ = open("ํ์ผ๋ช
.pickle", "wb")
ํ์ผํ์์ .pickle๋ก ๋ง๋ค์ด์ฃผ๊ณ ์ฐ๊ธฐ๋ชจ๋์ธ w๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ด๋ pickle๋ก ์ ์ฅํ ํ์ผ์ ํ ์คํธ๊ฐ ์๋
๋ฐ์ด๋๋ฆฌํ์์ด๋ค.
(์ด๋ฏธ์ง ํ์ผ, ์์ ํ์ผ, ์คํ ํ์ผ ๋ฑ -> ๋ฐ์ด๋๋ฆฌ ํ์ผ)
๊ทธ๋ ๊ธฐ๋๋ฌธ์ w๋ค์ b๋ฅผ ๋ถ์ฌ์ 'wb'๋ก ์จ์ฃผ์ด์ผ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฅ์ด ๋๋ค.
(ํ ์คํธํ์ผ๊ณผ ๋ค๋ฅด๊ฒ ๋ฐ์ดํฐ์ ํ๊ธ์ด ์์ด๋ ๋ณ๋์ ์ธ์ฝ๋ฉ ์ง์ ์ด ๋ถํ์!)
pickle์์ ๋ฐ์ดํฐ๋ฅผ ํ์ผ๋ก ์ ์ฅํ ๋ dump()๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
dump(์ ์ฅํ ๋ฐ์ดํฐ, ๋ฐ์ดํฐํ์ผ๋ณ์)
import pickle
FIFA_ability_file = open("ability.pickle", "wb") #๋ฐ์ด๋๋ฆฌํ์
์ง์
ability = {"์ด๋ฆ":"์ํฅ๋ฏผ","์ค๋ฒ๋กค":89, "์๋":88, "๋๋ฆฌ๋ธ":86, "์ํ
":87, "ํจ์ค":82}
pickle.dump(ability, FIFA_ability_file)
FIFA_ability_file.close() #ํ์ผ ๋ซ๊ธฐ
ใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ ก
โป์ฃผ์ํ ์ !!
pickle.py๋ก ํ์ด์ฌํ์ผ์ ์ ์ฅํด์ ์ฌ์ฉํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ ์ฌ์ฉํ๋ ๋ชจ๋๊ณผ ๋์ผํ ์ด๋ฆ์ผ๋ก ํ์ผ์ ์์ฑํ๋ฉด
import ์์ ๋์ผํ ๊ฒฝ๋ก์ ์๋ ํ์ผ์ ๋จผ์ ์ธ์ํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ํ๋ค! (by_๋๋์ฝ๋ฉ ์ ์๋)
ใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ กใ ก
2. ๋ฐ์ดํฐ ํ์ผ ๋ถ๋ฌ์ค๊ธฐ
import pickle
๋ฐ์ดํฐํ์ผ๋ณ์ = open("ํ์ผ๋ช
.pickle", "rb")
์ฝ๊ธฐ๋ชจ๋์์๋ ์ญ์ 'rb'๋ก ๋ฐ์ด๋๋ฆฌํ์ ์ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ฌ ๋์๋ load๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
load(๋ฐ์ดํฐํ์ผ๋ณ์)
import pickle
FIFA_ability_file = open("ability.pickle", "rb") #๋ฐ์ด๋๋ฆฌํ์
์ง์
ability = pickle.load(FIFA_ability_file)
print(ability)
FIFA_ability_file.close()
ใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
ก
{"์ด๋ฆ":"์ํฅ๋ฏผ","์ค๋ฒ๋กค":89, "์๋":88, "๋๋ฆฌ๋ธ":86, "์ํ
":87, "ํจ์ค":82}
์์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์์ ๋ณ์์ ์ ์ ์ฅ๋ ๊ฒ์ ์ ์ ์๋ค.
+Bonus
ํผ์์ ์คํํด๋ณธ pickle์ ์ฌ๋ฌ ๋ฐ์ดํฐ ๋ฃ๊ธฐ
import pickle
1. ํ์ผ์ ์ ์ฅํ ๋
profile_file = open("profile.pickle", "wb")
profile1 = {"์ด๋ฆ":"๊น์ ๋ก", "๋์ด":20, "์ทจ๋ฏธ":["๋
์","๊ณจํ"]}
profile2 = {"์ด๋ฆ":"๊น๋ง์", "๋์ด":23, "์ทจ๋ฏธ":["์ถ๊ตฌ","๊ฒ์"]}
pickle.dump(profile1, profile_file)
pickle.dump(profile2, profile_file) # profile์ ์๋ ์ ๋ณด๋ฅผ ํ์ผ์ ์ ์ฅ
profile_file.close()
#-------------------------------------------
2. ํ์ผ ๋ด์ฉ ๋ถ๋ฌ์ค๊ธฐ
profile_file = open("profile.pickle", "rb")
profile1 = pickle.load(profile_file)
profile2 = pickle.load(profile_file) # ํ์ผ ๋ด์ฉ ๋ถ๋ฌ์ค๊ธฐ
print(profile1)
print(profile2)
profile_file.close()
ใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
ก
{"์ด๋ฆ":"๊น์ ๋ก", "๋์ด":20, "์ทจ๋ฏธ":["๋
์","๊ณจํ"]}
{"์ด๋ฆ":"๊น๋ง์", "๋์ด":23, "์ทจ๋ฏธ":["์ถ๊ตฌ","๊ฒ์"]}
#-------------------------------------------
2-1. ํ์ผ ๋ด์ฉ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ถ๋ฌ์ค๊ธฐ
profile_file = open("profile.pickle", "rb")
while True:
try:
profile = pickle.load(profile_file)
if not profile:
break
print(profile)
except EOFError: #๋ฐ์ดํฐํ์ผ์ด ๋น์ด์์ผ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํด์ ์์ธ์ฒ๋ฆฌ
pass
profile_file.close()
ใ
กใ
กใ
กใ
กใ
กใ
กใ
กใ
ก
{"์ด๋ฆ":"๊น์ ๋ก", "๋์ด":20, "์ทจ๋ฏธ":["๋
์","๊ณจํ"]}
{"์ด๋ฆ":"๊น๋ง์", "๋์ด":23, "์ทจ๋ฏธ":["์ถ๊ตฌ","๊ฒ์"]}
pickle์ ๋ํด์ ์ถ๊ฐ์ ์ผ๋ก ์๊ฒ๋ ๊ฒ๋ค์ด ์์ผ๋ฉด ์ถ๊ฐํ ์์ ! (21.9.28)
'๐ | Python > ํ์ด์ฌ ๋ฌธ๋ฒ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
*args ์ **kwargs (0) | 2021.10.15 |
---|---|
ํจ์์ ๋ฉ์๋ (0) | 2021.10.02 |
ํ์ผ ์ ์ถ๋ ฅ (0) | 2021.09.23 |
๋ณ์์ ์ ํจ๋ฒ์ (0) | 2021.09.22 |
ํจ์_(2) (0) | 2021.09.20 |
๋๊ธ