6.3. ÆÄÀÏÀ» ÀÔ¸À´ë·Î
(¾´ ³¯ :
2001-06-14)
¿À´Ãµµ ¿À´ÃÀÇ ÇØ°¡ ¶¹±º¿ä~
Àú´Â ¡®³»ÀÏÀº ³»ÀÏÀÇ ÇØ°¡ ¶ã°Å¾ß¡¯¶ó´Â ¸»À» °¡²û ¾Ç¿ëÇÑ´ä´Ï´Ù.
¿À´Ã ÇÒ ÀÏÀ» ³»ÀÏ·Î ¹Ì·ê ¶§¡¦^^;
¿À´ÃÀº ÆÄÀÏÀ» ÀÔ¸À´ë·Î ¿ä¸®ÇÒ ¼ö ÀÖµµ·Ï ¿©·¯ °¡Áö ºñ¹ýÀ» Àü¼öÇØµå¸®Áö¿ä.
¸ÕÀú Á¶±Ý º¹ÀâÇÑ ÀڷḦ ÆÄÀÏ¿¡ ¾²°í Àд ¹æ¹ýºÎÅÍ ¾Ë¾Æº¾½Ã´Ù.
ÀÌ·² ¶§´Â pickle(ÇÇŬ)À̶õ ¸ðµâÀ» »ç¿ëÇÕ´Ï´Ù.
¿Ö ÇÇÀÚ ¸ÔÀ» ¶§ ³ª¿À´Â ¹ÝÂùÀ» À̸§À¸·Î ºÙ¿´´ÂÁö¡¦
¿¹Á¦·Î´Â ȸ¿øÀÇ ID¿Í ºñ¹Ð¹øÈ£¸¦ ÆÄÀÏ¿¡ ÀúÀåÇÏ´Â °ÍÀ»
»ý°¢Çغ¸¾Ò½À´Ï´Ù.
|
>>>
users = {'kim':'3kid9', 'sun80':'393948', 'ljm':'py90390'} >>> f =
open('d:/python21/exam/users.txt', 'w') >>>
import pickle >>>
pickle.dump(users, f) >>> f.close() |
óÀ½¿¡
ID¿Í ºñ¹Ð¹øÈ£¸¦ users¶ó´Â »çÀü¿¡ ´ã¾Ò½À´Ï´Ù.
±×¸®°í
users.txt¶ó´Â ÆÄÀÏÀ» »õ·Î ¿¾î¼ f¶ó°í Çß±¸¿ä.
±× ´ÙÀ½¿¡´Â ¿ÀÀÌÁö(pickle^^;) ¸ðµâÀÇ ´ýÇÁ(dump)¸¦ »ç¿ëÇß½À´Ï´Ù.
¿©·¯ºÐ ´ýÇÁ Æ®·° ´Ù ¾Æ½ÃÁÒ? ¿Ö °ø»çÀå¿¡¼ Èë ½Æ°í ´Ù´Ï´Â ¹«Áö Å« Æ®·° ÀÖÀݾƿä.
±×·± Â÷´Â µÚÂÊ ÁüÄÀ» µé¾î¿Ã·Á¼ ÈëÀ»
¿Í¸£¸£ ½ñ¾Æ³»Áö ¾Ê½À´Ï±î?
¿©±â¼ º¸½Ã´Â dumpµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù.
users¶ó´Â ¸®½ºÆ®ÀÇ
³»¿ëÀ» ÆÄÀÏ f¿¡ ¿Í¸£¸£ ½ñ¾Æº×´Â °ÅÁö¿ä.
À½, ÀÌ·¸°Ô±îÁö
¼³¸íÇÒ ÇÊ¿ä´Â ¾øÀ» ÅÙµ¥¡¦ ¿À´Ã ¾µ °ÍÀÌ ¾ø´Ùº¸´Ï¡¦
ÀÌÁ¦ ¸Þ¸ðÀåÀ¸·Î users.txt ÆÄÀÏÀ» ¿¾îº¸½Ã¸é ¸ð¾çÀÌ Á» ÁöÀúºÐÇϱä ÇØµµ µ¥ÀÌÅͰ¡ ´Ù µé¾îÀÖ´Â °É º¸½Ç ¼ö ÀÖÀ» °Å¿¹¿ä.
±×·¸´Ù¸é ÀÌ ÆÄÀÏ¿¡ µé¾îÀÖ´Â °ÍÀ» ¿ø·¡´ë·Î
µ¹·Áº¼±î¿ä?
¿ø·¡´ë·Î µ¹¸®´Â °Íµµ ¿ª½Ã ¿ÀÀÌÁö ¸ðµâÀÌ
ÇÒ ÀÏÀ̰ÚÁÒ.
|
>>> f =
open('d:/python21/exam/users.txt') >>> a =
pickle.load(f) >>>
print a {'sun80':
'393948', 'kim': '3kid9', 'ljm': 'py90390'} |
»ç½Ç ¹æ±Ý º¸¿©µå¸° °ÍÀº ±×¸® º¹ÀâÇÒ °Íµµ
¾øÁö¸¸ pickle ¸ðµâÀº ÆÄÀ̽㿡¼ ¸¸µé¾îÁö´Â °ÍÀº ¹¹µçÁö
´Ù ÆÄÀÏ¿¡ ÀûÀ» ¼ö ÀÖ´Ù°í ÇÕ´Ï´Ù.
¡®±×°Ô ¹¹ ¾î¶§¼¡¯¶ó°í
»ý°¢ÇϽÇÁö ¸ð¸£°ÚÁö¸¸ ÀÌ°Ç ³î¶ó¿î ±â´ÉÀ̶ó°í Æ©Å丮¾ó¿¡ ¾²¿©ÀÖ½À´Ï´Ù.
¿ÀÀÌÁö´Â ÀÌÂë ÇØµÎ°í, Àü¿¡ Àá±ñ ±¸°æÇß´ø glob ¸ðµâ¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏÁÒ.
glob´Â ÆÄÀϵéÀÇ
¸ñ·ÏÀ» »ÌÀ» ¶§ »ç¿ëÇϴµ¥, ÆÄÀÏÀÇ °æ·Î¸íÀ» ÀÌ¿ëÇØ¼ ÀÔ¸À´ë·Î ¿ä¸®ÇÒ ¼ö ÀÖ´ä´Ï´Ù.
|
>>>
import glob >>>
glob.glob('*.*') ['INSTALL.LOG',
'LICENSE.txt', 'NEWS.txt', 'py.ico', 'pyc.ico', 'pycon.ico', 'py thon.exe',
'pythonw.exe', 'readme.txt', 'UNWISE.EXE', 'w9xpopen.exe'] >>>
glob.glob('*.txt') ['LICENSE.txt',
'NEWS.txt', 'readme.txt'] |
À§¿¡¼ º°Ç¥(*)´Â ¹«½¼ ±ÛÀÚµç, ¸î ±ÛÀÚµç »ó°ü ¾ø´Ù´Â ¶æÀ¸·Î µð·ºÅ丮(Æú´õ)¿¡ µé¾îÀÖ´Â ÆÄÀϵéÀ» ±×³É ´Ù º¸·Á¸é ¡®*.*¡¯¶ó°í ÇØÁÖ¸é
µË´Ï´Ù.
ÆÄÀÏ¸í¿¡ »ó°ü ¾øÀÌ È®ÀåÀÚ°¡ txtÀÎ ÆÄÀÏÀ» ¸ðµÎ º¸°í ½ÍÀ¸¸é ¡®*.txt¡¯¶ó°í ÇÏ¸é µÇÁö¿ä.
´ÙÀ½Àº
glob°ú ÇÔ²² os.path ¸ðµâÀ» »ç¿ëÇÑ ¿¹Á¦ÀÔ´Ï´Ù.
|
>>> import os.path >>> files
= glob.glob('*') >>> for
x in files: ... print x, ... if
os.path.isdir(x): # µð·ºÅ丮Àΰ¡? ...
print '<DIR>' ... else: ...
print '' |
½ºÅ©¸³Æ®¸¸ º¸°í ¾î¶² ÀÏÀ» Çϴ°ÇÁö ÁüÀÛÀÌ
°¡½Ã´ÂÁö¿ä?
µÑ°ÁÙ¿¡¼ glob.glob(¡®*¡¯)¸¦ ÇØ¼ ¾ò¾îÁø ÆÄÀÏ ¸ñ·ÏµéÀ» files¶ó´Â ¸®½ºÆ®·Î ³Ö¾îÁá½À´Ï´Ù.
±× ´ÙÀ½ºÎÅÍ´Â for ¹®À» ÅëÇØ¼ ÆÄÀϸíÀ» Çϳª¾¿ Ãâ·ÂÇÑ ´ÙÀ½ ±×°ÍÀÌ µð·ºÅ丮À̸é <DIR>À̶ó°í Ãâ·ÂÇØÁÖ°í, ±×·¸Áö ¾ÊÀ¸¸é
±×³É ÁÙ¸¸ ³Ñ°ÜÁÖµµ·Ï ÇßÁö¿ä.
¹ú½á Áý¿¡ °¡±â·Î ¾àÁ¶ÇÑ ½Ã°£ÀÌ µÇ¾ú½À´Ï´Ù.
³»Àϵµ ¶ß°Å¿î ÇØ°¡ ¶°¿À¸£±â¸¦¡¦