<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>joyungki&#45784;&#51032; &#45432;&#53944;</title>
    <link>http://joyungki.springnote.com/pages</link>
    <description>joyungki&#45784;&#51032; &#45432;&#53944;</description>
    <language>ko-KR</language>
    <item>
      <title>python_util</title>
      <description>&lt;p&gt;&#54028;&#51060;&#50028; &#49548;&#49828;&#50640; &#54620;&#44544; &#47928;&#51088;&#50676;&#51060; &#51080;&#51004;&#47732; &#45796;&#51020;&#44284; &#44057;&#51008; "SyntaxError: Non-ASCII character..."&#46972;&#45716; &#50640;&#47084;&#44032; &#45225;&#45768;&#45796;:&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;File "D:\Z\0.py", line 4&lt;br /&gt;
SyntaxError: Non-ASCII character '\x8c' in file D:\Z\0.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;
&#54028;&#51060;&#50028;&#51008; &#50689;&#47928; &#51064;&#53076;&#46377;&#51060; &#44592;&#48376;&#51060;&#44592;&#50640;, &#54620;&#44544;&#51012; &#54364;&#54788;&#54616;&#44592; &#50948;&#54644;&#49436;&#45716; &#54620;&#44544; &#51064;&#53076;&#46377;&#51012; &#51648;&#51221;&#54644; &#51452;&#50612;&#50556; &#54633;&#45768;&#45796;.&lt;/p&gt;
&lt;div class="wasabi-box wasabi-code"&gt;# -*- coding: 949 -*-&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
&#50948;&#50752; &#44057;&#51008; &#54665;&#51012;, &#54028;&#51060;&#50028; &#49548;&#49828;&#51032; &#48152;&#46300;&#49884; "1&#48264;&#51704; &#51460;" &#46608;&#45716; "2&#48264;&#51704; &#51460;"&#50640; &#50948;&#52824;&#49884;&#53020;&#50556; &#54633;&#45768;&#45796;. 3&#48264;&#51704; &#51460;&#48512;&#53552;&#45716; &#50504;&#46121;&#45768;&#45796;.&lt;br /&gt;
&lt;br /&gt;
&#46608;&#54620;&lt;br /&gt;
coding:&lt;br /&gt;
&#51060;&#44275;&#51032; &#53084;&#47200;(:)&#44592;&#54840;&#47484;&lt;br /&gt;
&lt;br /&gt;
coding :&lt;br /&gt;
&#51060;&#47111;&#44172; &#46916;&#50612;&#50416;&#47732; &#50504;&#46121;&#45768;&#45796;.&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;
&lt;h3&gt;&#54028;&#51060;&#50028; &#49548;&#49828; &#54620;&#44544; &#51064;&#53076;&#46377; &#51648;&#51221; &#50696;&#51228;&lt;/h3&gt;
&lt;p&gt;&lt;br /&gt;
&#54028;&#51068;&#47749;: 0.py&lt;/p&gt;
&lt;div class="wasabi-code-box"&gt;#!/usr/bin/python&lt;br /&gt;
# -*- coding: 949 -*-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print "Hello World! &#46624;&#48169;&#44033;&#54616;"&lt;br /&gt;
&lt;br /&gt;
# &#51060; &#51460;&#51008; &#51452;&#49437;&#47928;(&#53076;&#47704;&#53944;; Comment)&#51077;&#45768;&#45796;.&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;# -*- coding: cp949 -*-&lt;/strong&gt;&lt;br /&gt;
&#46608;&#45716;&lt;br /&gt;
&lt;strong&gt;# -*- coding: ms949 -*-&lt;/strong&gt;&lt;br /&gt;
&#46972;&#44256; &#54644;&#46020; &#46121;&#45768;&#45796;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#44536;&#47084;&#45208;&lt;br /&gt;
&lt;strong&gt;# -*- coding: euc-kr -*-&lt;/strong&gt;&lt;br /&gt;
&#51060;&#46972;&#44256; &#54616;&#47732;, "&#46624;&#48169;&#44033;&#54616;"&#51032; "&#46624;"&#51088; &#46321;&#51060; &#54364;&#54788;&#46104;&#51648; &#50506;&#49845;&#45768;&#45796;.&lt;br /&gt;
&lt;br /&gt;
"&#46624;"&#51088;&#47484; &#52376;&#47532;&#54616;&#51648; &#47803;&#54616;&#44256; &#51060;&#47088; &#50640;&#47084;&#44032; &#45225;&#45768;&#45796;: &lt;strong&gt;SyntaxError: 'euc_kr' codec can't decode bytes in position 20-21: illegal multibyte sequence&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&#51593; &#54869;&#51109;&#50756;&#49457;&#54805;&#51060; &#50500;&#45772; &#44536;&#45285; &#50756;&#49457;&#54805;&#51004;&#47196; &#51648;&#51221;&#46121;&#45768;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&amp;nbsp;&amp;nbsp;&#46356;&#47113;&#53664;&#47532;&#51032; &#54028;&#51068;&#47785;&#47197; &#50619;&#44592;&lt;/h4&gt;
&lt;p&gt;glob&#47784;&#46280;&#51032; glob&#54632;&#49688; &#49324;&#50857;: &#50752;&#51068;&#46300;&#52852;&#46300;&#47928;&#51088; ?(&#51076;&#51032;&#51032;&#47928;&#51088; 1&#44060;&#50752; &#47588;&#52845;),* &#47484; &#51648;&#50896;&#54620;&#45796;.&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;
&lt;p&gt;import glob&lt;br /&gt;
glob.glob('./[0-9].*')&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&amp;nbsp;&#54028;&#51068;&#51032; &#52628;&#44032;&#51221;&#48372; &#50508;&#50500;&#45236;&#44592;&lt;/h4&gt;
&lt;p&gt;isfile(path)- path&#44032; &#51068;&#48152; &#54028;&#51068;&#51060;&#47732; True &#47532;&#53556;&lt;br /&gt;
isdir(path)- path&#44032; &#46356;&#47113;&#53664;&#47532;&#51060;&#47732; True &#47532;&#53556;&lt;br /&gt;
islink(path), ismount(path), exist(path)&lt;/p&gt;
&lt;p&gt;&#54028;&#51068;&#53356;&#44592;, &#51217;&#44540;&#49884;&#44036;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&amp;nbsp;&#44221;&#47196;&#47749; &#45796;&#47336;&#44592;&lt;/h4&gt;
&lt;ol class="code"&gt;
&lt;li&gt;import os&lt;br /&gt;
p = os.path.abspath('LogMergeServer.py') #&#49345;&#45824;&#44221;&#47196;&#47484; &#51208;&#45824;&#44221;&#47196;&#47196;&lt;br /&gt;
p&lt;br /&gt;
'/hanmail/wap_log/LogMergeServer.py'&lt;br /&gt;
os.path.split(p) #(&#46356;&#47113;&#53664;&#47532;&#50752; &#54028;&#51068;&#51012; &#48516;&#47532;)&lt;br /&gt;
('/hanmail/wap_log', 'LogMergeServer.py')&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&amp;nbsp;URL&#45796;&#47336;&#44592;&lt;/h4&gt;
&lt;p&gt;urlparse&#54632;&#49688;&#45716; &#50500;&#47000;&#50752; &#44057;&#51060; &#48516;&#47532;&#54616;&#50668; &#53916;&#54540;&#51012; &#47532;&#53556;&lt;br /&gt;
(addressing, scheme, network location, path, parameter, query, fragment, identifier)&lt;br /&gt;
ex)&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;import urlparse&lt;br /&gt;
a='http://3355.daum.net/daum/search/top/TotalList?q=&#49828;&#54028;&#51060;&#45908;&#47592;3&amp;amp;skey='&lt;br /&gt;
x=urlparse.urlparse(a)&lt;br /&gt;
x&lt;/li&gt;
&lt;li&gt;('http', '3355.daum.net', '/daum/search/top/TotalList', '', 'q=\xbd\xba\xc6\xc4\xc0\xcc\xb4\xf5\xb8\xc73&amp;amp;skey=', '')&lt;/li&gt;
&lt;li&gt;urlparse.urlunparse(x)&lt;br /&gt;
&lt;a href="http://joyungki.springnote.com/pages/%27http://3355.daum.net/daum/search/top/TotalList?q=/xbd/xba/xc6/xc4/xc0/xcc/xb4/xf5/xb8/xc73&amp;amp;skey=%27" class="external" title="'http://3355.daum.net/daum/search/top/TotalList?q=\xbd\xba\xc6\xc4\xc0\xcc\xb4\xf5\xb8\xc73&amp;amp;skey='"&gt;'http://3355.daum.net/daum/search/top/TotalList?q=\xbd\xba\xc6\xc4\xc0\xcc\xb4\xf5\xb8\xc73&amp;amp;skey='&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;urlparse.urljoin(a, 'SearchTop')&lt;/li&gt;
&lt;li&gt;&amp;nbsp;'http://3355.daum.net/'&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;Python regex&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;text = '''128.134.98.74 - - [03/Jul/2007:17:03:01 +0900] "GET /daum/search/top/TotalList?q=\xc4\xab\xb5\xe5\xb2\xa4&amp;amp;access=KTF_SEARCH HTTP/1.1" 200 10949 "-" "Mozilla/1.22 (compatible;KUN/2.1.1; EV-K100; CellPhone)" "-" "8201096336669" "-"'''&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text = urllib.unquote(text)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; url = text.split("\"")[1].split(" ")[1]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; url = url.decode()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; pattern = r'^/\w+/\w+/(\w+)/\w.*q=([^&amp;amp;\xA1-\xFE]+).+?'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; p = re.compile(pattern)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; #p = re.compile(r'^/\w+/\w+/(\w+)/\w.*q=([^(\xa1-\xfe0-9a-zA-Z]+).+?')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; m = p.match(url)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print url&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print '------------------------------------------------------'&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print m.group(0)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print m.group(1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; q = m.group(2)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print q&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;# -*- coding: euc-kr -*-&lt;br /&gt;
import urllib&lt;br /&gt;
import re&lt;br /&gt;
import time&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;class parseLog:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def __init__(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.today = time.strftime('%y%m%d')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.infile = open(self.today + '.search_log', 'r')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.outfile = open(self.today + '.search_map', 'a')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def extractUrl(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.urls=[]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for line in self.infile:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; line = urllib.unquote(line)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.urls.append(line.split("\"")[1].split(" ")[1].decode())&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def parseUrl(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.collMap = []&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for url in self.urls:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print url&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = re.compile(r'^/\w+/\w+/(\w+)/\w.*q=([^&amp;amp;\xA1-\xFE]+).+?')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m = p.match(url)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; collection = m.group(1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keyword = m.group(2)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print collection, keyword&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.collMap.append((collection, keyword))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
if __name__== "__main__":&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; p = parseLog()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; p.extractUrl()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; p.parseUrl()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print p.collMap&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;&amp;nbsp; # # -*- coding: euc-kr -*-&lt;br /&gt;
import urllib&lt;br /&gt;
import re&lt;br /&gt;
import time&lt;br /&gt;
from array import *&lt;br /&gt;
class CollectionInfo:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; cafe = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; know = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; blog = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; news = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; image = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; web = 0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; keyword = ''&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def setKeyword(self, keyword):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.keyword = keyword&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def addCafe(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.cafe = self.cafe+1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def addKnow(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.know = self.know+1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def addBlog(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.blog = self.blog+1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def addNews(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.news = self.news+1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def addImage(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.image = self.image + 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def addWeb(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.web = self.web + 1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def printColl(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'cafe:',self.cafe,'/','blog:',self.blog,'/','know:',self.know,'/', 'news:',self.news,'/', 'image:',self.image,'/', 'web:',self.web&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
class ParseLog:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def __init__(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.today = time.strftime('%y%m%d')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.infile = open(self.today + '.search_log', 'r')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.outfile = open(self.today + '.search_map', 'a')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic = {}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def extractUrl(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.urls=[]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for line in self.infile:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; line.decode()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; line = urllib.unquote(line)&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.urls.append(line.split("\"")[1].split(" ")[1])&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; '''/daum/search/blog/BlogList?q=%C7%CF%B5%CE%B8%AE%B3%E0&amp;amp;skey='''&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def extractKeyword(self, url):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if url.find('?q=') &amp;gt; 0:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index = url.find('?q=')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if url.find('&amp;amp;q=') &amp;gt; 0:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; index = url.find('&amp;amp;q=')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q = url[index+3:]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if q.find('&amp;amp;') &amp;gt; -1:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; q = q[:q.find('&amp;amp;')]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return q&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def setCollectionInfo(self, collection, keyword):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col=CollectionInfo()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 'cafe' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col.addCafe()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'blog' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col.addBlog()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'know' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col.addKnow()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'news' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col.addNews()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'image' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col.addImage()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'web' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; col.addWeb()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return col&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def setKeywordStat(self, collection, keyword, isFirst = False):&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(isFirst):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword] = self.setCollectionInfo(collection,keyword)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if keyword in self.coldic:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 'cafe' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword].addCafe()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'blog' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword].addBlog()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'know' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword].addKnow()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'news' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword].addNews()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'image' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword].addImage()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elif 'web' == collection:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword].addWeb()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.coldic[keyword] = self.setCollectionInfo(collection,keyword)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; def parseUrl(self):&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.collMap = []&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colPattern = re.compile(r'^/.*(cafe|know|blog|image|dr|news)/.*')&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=0&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for url in self.urls:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; colMat = colPattern.search(url)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; collection = colMat.group(1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keyword = self.extractKeyword(url)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if keyword is not '':&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; keyword = keyword.replace('+','')#&#44277;&#48177;&#51228;&#44144;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print url&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print keyword&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if i == 0:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.setKeywordStat(collection, keyword, True)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.setKeywordStat(collection, keyword)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i=i+1&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #setKeywordStat(collection,keyword,i)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; self.collMap.append((collection, keyword))&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
if __name__== "__main__":&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; p = ParseLog()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; p.extractUrl()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; p.parseUrl()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; print '======================================'&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for keyword in p.coldic.keys():&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print keyword, p.coldic[keyword].printColl()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Mon, 09 Jul 2007 01:50:46 +0900</pubDate>
      <link>http://joyungki.springnote.com/pages/227536</link>
      <guid>http://joyungki.springnote.com/pages/227536</guid>
    </item>
    <item>
      <title>python_socket</title>
      <description>&lt;h1&gt;&amp;nbsp;python socket&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;socket(domain,[TCP|UDP])&amp;nbsp; - &#49548;&#53011;&#44061;&#52404; &#49373;&#49457;&lt;/p&gt;
&lt;p&gt;domain=AF_INET, AF_UNIX&lt;/p&gt;
&lt;p&gt;TCP=SOCK_STREAM,&amp;nbsp;UDP=SOCK_DGRAM&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;bind(host, port)&amp;nbsp; - &#53945;&#51221; &#54840;&#49828;&#53944;&#50752; &#54252;&#53944;&#47196; &#48148;&#51064;&#46300;&lt;/p&gt;
&lt;p&gt;listen(n) - server method n-&#53364;&#46972;&#51060;&#50616;&#53944; &#45824;&#44592;&#53328;(1~5)&lt;/p&gt;
&lt;p&gt;accept() - return conn, addr&lt;/p&gt;
&lt;p&gt;recv(bufsize) - bufsize&#47564;&#53372;&#51032; &#45936;&#51060;&#53552;&#47484; &#49688;&#49888;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;send(buf) -&amp;nbsp;&#49548;&#53011;&#51012; &#53685;&#54644; &#45936;&#51060;&#53552;&#47484; &#51204;&#49569;&#54620;&#45796;.(&#51204;&#52404;&#44032; &#54620;&#48264;&#50640; &#51204;&#49569;&#46104;&#51648; &#50506;&#51012;&#49688;&#46020; &#51080;&#51020;, &#51204;&#49569;&#46108; &#47928;&#51088;&#49688;&#44032; &#47532;&#53556;&#46120;)&lt;/p&gt;
&lt;p&gt;sendall(buf) - &#49548;&#53011;&#51012; &#53685;&#54644; &#45936;&#51060;&#53552;&#47484; &#51204;&#49569;&#54620;&#45796;. (&#51204;&#52404;&#47700;&#49884;&#51648;&#47484; &#47784;&#46160;&#51204;&#49569;&#54632;, &#47784;&#46160; &#51204;&#49569;&#54980;&#50640;&#50556; &#47532;&#53556;&#46120;)&lt;/p&gt;
&lt;p&gt;setsockopt(SOL_SOCKET, SO_REUSADDR,1) - &#49548;&#53011;&#51012; &#51333;&#47308;&#54616;&#51088;&#47560;&#51088; &#51452;&#49548;&#51116;&#49324;&#50857;&#51012; &#54728;&#50857;&#54632;&lt;/p&gt;
&lt;p&gt;accept() -&amp;nbsp;&#53364;&#46972;&#51060;&#50616;&#53944;&#51032; &#50672;&#44208;&#51012; &#48155;&#50500;&#46308;&#51064;&#45796;.&lt;/p&gt;
&lt;p&gt;&#48660;&#47196;&#53433; &#47784;&#46300;&#51068; &#46412;&#45716; &#53364;&#46972;&#51060;&#50616;&#53944;&#44032; &#50672;&#44208;&#51012; &#49884;&#46020;&#54624;&#46412; &#44620;&#51648;&amp;nbsp;&#44592;&#45796;&#47536;&#45796;.&amp;nbsp;(conn,&amp;nbsp;addr&#51012; &#47532;&#53556;)&lt;/p&gt;
&lt;p&gt;close() - &#49548;&#52899;&#51012; &#45803;&#45716;&#45796;.&lt;/p&gt;
&lt;p&gt;setblocking(True|False) - &#48660;&#47196;&#53433;&#49444;&#51221;&lt;/p&gt;
&lt;p&gt;gettimeout(), settimeout(sec) - time out&#49444;&#51221;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&#50696;&#51228; TCP &#49548;&#53011; &#46041;&#51109;&#50696;&#51228;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;#Server&lt;/li&gt;
&lt;li&gt;from socket&amp;nbsp;import&amp;nbsp;*&lt;/li&gt;
&lt;li&gt;HOST = '192.168.36.17'&amp;nbsp;&lt;/li&gt;
&lt;li&gt;PORT&amp;nbsp;= '50001'&lt;/li&gt;
&lt;li&gt;s = socket(AF_INET,&amp;nbsp;SOCK_STREAM)&lt;/li&gt;
&lt;li&gt;s.setsockopt(SOL_SOCKET, SO_REUSEADDR,&amp;nbsp;1)&lt;/li&gt;
&lt;li&gt;s.bind((HOST,PORT))&lt;/li&gt;
&lt;li&gt;s.listen(1)&lt;/li&gt;
&lt;li&gt;conn, addr =&amp;nbsp;s.accept()&amp;nbsp;#conn&#44061;&#52404;&#50752; address(HOST, PORT)&#51221;&#48372;&#47484; &#47532;&#53556;, client &#50836;&#52397;&#49884;&#44620;&#51648; &#45824;&#44592;&lt;/li&gt;
&lt;li&gt;while 1:
&lt;ol&gt;
&lt;li&gt;data = conn.recv(1024)&lt;/li&gt;
&lt;li&gt;if&amp;nbsp;not data: break&lt;/li&gt;
&lt;li&gt;conn.send(data)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;conn.close()&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;#client&lt;/li&gt;
&lt;li&gt;from socket import&amp;nbsp;*&lt;/li&gt;
&lt;li&gt;HOST='localhost'&lt;/li&gt;
&lt;li&gt;PORT='50001'&lt;/li&gt;
&lt;li&gt;s = socket(AF_INET, SOCK_STREAM)&lt;/li&gt;
&lt;li&gt;s.connect((HOST, PORT))&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN-LEFT: 1em"&gt;&lt;/p&gt;
</description>
      <pubDate>Wed, 20 Jun 2007 17:14:02 +0900</pubDate>
      <link>http://joyungki.springnote.com/pages/310358</link>
      <guid>http://joyungki.springnote.com/pages/310358</guid>
    </item>
    <item>
      <title>python_file</title>
      <description>&lt;h1&gt;python&amp;nbsp;file&lt;/h1&gt;
&lt;p&gt;file.close(), file.read([size])&amp;nbsp;, file.readline()&lt;/p&gt;
&lt;p&gt;file.readlines():&amp;nbsp;&#51204;&#52404;&#46972;&#51064;&#51012; readline()&#51012; &#51060;&#50857;&#54616;&#50668; &#51069;&#50612;&#46308;&#51064; &#46972;&#51064;&#51012; &#47532;&#49828;&#53944;&#50640; &#45347;&#50612;&#49436; &#47532;&#53556;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;file.write(str): &#47928;&#51088;&#50676;&amp;nbsp;str&#51012; &#54028;&#51068;&#50640; &#50420;&#45796;.&lt;/p&gt;
&lt;p&gt;file.writeline(str): &#47928;&#51088;&#50676; &#47532;&#49828;&#53944;&#47484; &#54028;&#51068;&#50640;&amp;nbsp;&#50420;&#45796;. &#51460;&#48148;&#44984;&#44592;&#44032; &#51088;&#46041;&#51004;&#47196; &#49341;&#51077;&#46104;&#51648;&#45716; &#50506;&#45716;&#45796;.&lt;/p&gt;
&lt;p&gt;file.seek(offset,[whence]): whence&#51032; &#44592;&#48376; &#44050;&#51008;&amp;nbsp;0&#51060;&#45796;.&amp;nbsp;0&#51060;&#47732; &#49884;&#51089; &#44592;&#51456;, 1&#51060;&#47732; &#54788;&#51116; &#50948;&#52824;&amp;nbsp;&#44592;&#51456;, 2&#51060;&#48124; &#45149; &#44592;&#51456;&#50640;&#49436;&amp;nbsp;offset&#47564;&#53372; &#46504;&#50612;&#51652; &#50948;&#52824;&#50640; &#54028;&#51068; &#54252;&#51064;&#53552;&#47484; &#50948;&#52824;&#49884;&#53416;&#45796;.&lt;/p&gt;
&lt;p&gt;file.tell():&amp;nbsp;&#54028;&#51068;&#51032; &#54788;&#51116;&#50948;&#52824;&#47484; &#47532;&#53556;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;file.flush():&amp;nbsp;&#48260;&#54140;&#44032; &#45796; &#52292;&#50892;&#51648;&#51648; &#50506;&#50520;&#50612;&#46020; &#45236;&#48512; &#48260;&#54140;&#51032; &#45236;&#50857;&#51012; &#54028;&#51068;&#50640; &#48372;&#45240;&#45796;.&lt;/p&gt;
&lt;p&gt;file.fileno():&amp;nbsp;file &#44061;&#52404;&#51032; &#54028;&#51068; &#44592;&#49696;&#51088;(File Descriptor)(&#51221;&#49688;)&#47484; &#47532;&#53556;&#54620;&#45796;.&lt;/p&gt;
&lt;p&gt;file.truncate([size])&#54028;&#51068; &#53356;&#44592;&#47484; &#51648;&#51221;&#46108; &#53356;&#44592;&#47196; &#51096;&#46972;&#48260;&#47548;. &#51064;&#49688;&#47484; &#51452;&#51648; &#50506;&#51004;&#47732; &#54788;&#51116; &#50948;&#52824;&#50640;&#49436; &#51088;&#47480;&#45796;.&lt;/p&gt;
&lt;p&gt;file.mode: &#54028;&#51068;&#51060; &#50724;&#54536;&#46108; &#47784;&#46300;, file.closed:&amp;nbsp;1&amp;nbsp;or&amp;nbsp;0&#51012; &#47532;&#53556;,&amp;nbsp;file.name:&amp;nbsp;open()&#54624; &#46412; &#49324;&#50857;&#46108; &#54028;&#51068; &#51060;&#47492;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Sun, 17 Jun 2007 16:58:03 +0900</pubDate>
      <link>http://joyungki.springnote.com/pages/227784</link>
      <guid>http://joyungki.springnote.com/pages/227784</guid>
    </item>
    <item>
      <title>python_oracle</title>
      <description>&lt;h2 id="head-8659455280f3556e87baec0646978d9fbef2a859"&gt;Oracle module &#49548;&#44060;&lt;/h2&gt;
&lt;p&gt;&lt;span class="anchor" id="line-13"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line862"&gt;Oracle&#50640; &#51217;&#49549;&#54616;&#44592; &#50948;&#54644;&#49436;&#45716; Oracle&#51217;&#49549; &#47784;&#46280;&#51060; &#54596;&#50836;&#54620;&#45936; &#51060;&#45716; &#54028;&#51060;&#50028; &#49548;&#49828;&#53076;&#46300;&#47484; &#53685;&#54644; &#49789;&#44172; Oracle &#49436;&#48260;&#50640; &#51217;&#44540;&#54624; &#49688; &#51080;&#46020;&#47197; &#54644;&#51452;&#47728; SQL&#47749;&#47161;&#50612;&#47484; &#49892;&#54665;&#54632;&#51004;&#47196;&#50024; &#50619;&#51008; &#44208;&#44284;&#47484; &#54028;&#51060;&#50028;&#53076;&#46300;&#50640;&#49436; &#50976;&#50857;&#54620; &#54805;&#53468;&#47196; &#49324;&#50857;&#54624; &#49688; &#51080;&#46020;&#47197; &#54644;&#51456;&#45796;. &#54028;&#51060;&#50028;&#51012; &#53685;&#54644; Oracle&#50640; &#51217;&#44540;&#54616;&#44592; &#50948;&#54644;&#49436; &#48376; &#53580;&#53356;&#45432;&#53944;&#50640;&#49436;&#45716; cx_Oracle &#47784;&#46280;&#51012; &#49324;&#50857;&#54664;&#45796;. cx_Oracle&#47784;&#46280;&#51008; &#45796;&#51020; &#49912;&#51060;&#53944;&#50640;&#49436; &#52572;&#49888;&#48260;&#51204;&#51012; &#45796;&#50868;&#48155;&#51012; &#49688; &#51080;&#45796;. &lt;a href="http://sourceforge.net/projects/cx-oracle/" class="http"&gt;http://sourceforge.net/projects/cx-oracle/&lt;/a&gt; &#49444;&#52824;&#46104;&#50612; &#51080;&#45716; &#54028;&#51060;&#50028; &#48260;&#51204;&#44284; &#49324;&#50857;&#54616;&#44256;&#51080;&#45716; &#50724;&#46972;&#53364; &#48260;&#51204;&#50640; &#47582;&#45716; &#47784;&#46280;&#51012; &#45796;&#50868;&#48155;&#50500; &#49444;&#52824;&#54616;&#47732; &#46108;&#45796;. &#44536;&#48150;&#50640; &#45796;&#47480; &#47784;&#46280;&#51012; &#49324;&#50857;&#54624; &#44221;&#50864; &#45796;&#51020; &#54168;&#51060;&#51648;&#47484; &#52280;&#51312;&#54616;&#50668; &#51201;&#51208;&#54620; &#47784;&#46280;&#51008; &#49324;&#50857;&#54616;&#47732; &#46108;&#45796;. &lt;a href="http://www.python.org/topics/database/modules.html" class="http"&gt;http://www.python.org/topics/database/modules.html&lt;/a&gt; &lt;span class="anchor" id="line-14"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-15"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line867"&gt;&lt;/p&gt;
&lt;h2 id="head-32c35ab2ae21e6e61195cd9509dd392fc033d41a"&gt;&#49444;&#52824;&#48169;&#48277;&lt;/h2&gt;
&lt;p&gt;&lt;span class="anchor" id="line-16"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line867"&gt;&lt;/p&gt;
&lt;h3 id="head-f83c1a5483a88e6621a06fabf0cbd89522e8b320"&gt;&#47532;&#45573;&#49828;&lt;/h3&gt;
&lt;p&gt;&lt;span class="anchor" id="line-17"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line874"&gt;$ tar -xzvf cx_Oracle-4.3.1.tar.gz &lt;span class="anchor" id="line-18"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-19"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line874"&gt;$ cd cx_Oracle-4.3.1 &lt;span class="anchor" id="line-20"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-21"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line874"&gt;$ python setup.py build &lt;span class="anchor" id="line-22"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-23"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line874"&gt;$ python setup.py install &lt;span class="anchor" id="line-24"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-25"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line867"&gt;&lt;/p&gt;
&lt;h3 id="head-d22529030d1741249551a18a033a36f8b8c28cf7"&gt;&#50952;&#46020;&#50864;&lt;/h3&gt;
&lt;p&gt;&lt;span class="anchor" id="line-26"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line874"&gt;&#45796;&#50868;&#48155;&#51008; &#49892;&#54665;&#54028;&#51068;&#51012; &#49892;&#54665;&#54616;&#47732; python&#49444;&#52824; &#46356;&#47113;&#53664;&#47532;&#47484; &#52286;&#50500; &#51088;&#46041;&#51004;&#47196; &#49444;&#52824;&#46108;&#45796;. cx_Oracle-4.3.1-win32-10g-py25.exe &lt;span class="anchor" id="line-27"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-28"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line867"&gt;&lt;/p&gt;
&lt;h2 id="head-567c293c299b1a6c9206339b5cf4eab791a078dc"&gt;Oracle &#51217;&#49549;&#48169;&#48277;&lt;/h2&gt;
&lt;p&gt;&lt;span class="anchor" id="line-29"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1.&#47676;&#51200; &#49444;&#52824;&#46108; cx_Oracle&#47784;&#46280;&#51012; import&#54620;&#45796;. &lt;span class="anchor" id="line-30"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="line867"&gt;&amp;gt;&amp;gt;&amp;gt; import cx_Oracle &lt;span class="anchor" id="line-31"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-32"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2.Database&#50640; &#51217;&#49549;&#54620;&#45796;. &lt;span class="anchor" id="line-33"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;connect( [user, password, dsn, mode, handle, pool, threaded, twophase]) &lt;span class="anchor" id="line-34"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&#51068;&#48152;&#51201;&#51064; &#51217;&#49549;&#51012; &#50948;&#54644;&#49436;&#45716; id&#50752; passwd &#44536;&#47532;&#44256; dsn(data source name:TNSNAMES.ora&#54028;&#51068; &#52280;&#44256;)&#51060; &#54596;&#50836;&#54616;&#45796;. &lt;span class="anchor" id="line-35"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&#52628;&#44032;&#51201;&#51064; &#54028;&#46972;&#48120;&#53552;&#45716; &#54596;&#50836;&#50640; &#46384;&#46972; &#51217;&#49549;&#49884; &#51648;&#51221;&#54624; &#49688; &#51080;&#51004;&#47728; &#51068;&#48152;&#51201;&#51064; &#51217;&#49549;&#51012; &#50948;&#54644;&#49436; &#50500;&#47000;&#50752; &#44057;&#51060; &#51217;&#49549;&#54616;&#50688;&#45796;. &lt;span class="anchor" id="line-36"&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="line867"&gt;&amp;gt;&amp;gt;&amp;gt;orcl = cx_Oracle.connect('id/passwd@dsn') &lt;span class="anchor" id="line-37"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-38"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line867"&gt;&lt;/p&gt;
&lt;h2 id="head-ff50cf789bf26a004d06ea1f5b8c1e49e4ccc5bb"&gt;&#50696;&#51228;&#53076;&#46300;&lt;/h2&gt;
&lt;p&gt;&lt;span class="anchor" id="line-39"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line867"&gt;&lt;span class="anchor" id="line-40"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;
&lt;div class="line867"&gt;
&lt;pre&gt;
&amp;gt;&amp;gt;&amp;gt; import cx_Oracle
&lt;span class="anchor" id="line-41"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; orcl = cx_Oracle.connect('id/passwd@dsn')
&lt;span class="anchor" id="line-42"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; curs = orcl.cursor()
&lt;span class="anchor" id="line-43"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; curs.execute('select * from blogmore where btype=\'BEST\'')
&lt;span class="anchor" id="line-44"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; row = curs.fetchone() #&#49345;&#50948; 1&#44060;&#51032; row&#47564; &#44032;&#51256;&#50728;&#45796;.
&lt;span class="anchor" id="line-45"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt;print row  #&#54644;&#45817; row&#44032; turple&#54805;&#53468;&#47196; &#52636;&#47141;&#46108;&#45796;.
&lt;span class="anchor" id="line-46"&gt;&lt;/span&gt;(155, 'BEST', 'antiright', '\xb4\xeb\xb8\xb6\xbf\xd5', '\xb4\xeb\xb8\xb6\xbf\xd5 \xb9\xe6\xb6\xfb\xb1\xe2', None, None, 'http://cfs7.blog.daum.net/upload_control/download.blog?fhandle=MDNPcmlAZnM3LmJsb2cuZGF1bS5uZXQ6L1BST0ZJTEUvMC8wLmpwZy50aHVtYg==&amp;amp;filename=0.jpg-', datetime.datetime(2006, 12, 4, 19, 45, 33))
&lt;span class="anchor" id="line-47"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; print row[0], row[1]
&lt;span class="anchor" id="line-48"&gt;&lt;/span&gt;155 BEST
&lt;span class="anchor" id="line-49"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; rows = curs.fetchall() #&#47784;&#46304; row&#47484; &#44032;&#51256;&#50728;&#45796;.
&lt;span class="anchor" id="line-50"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; print rows #&#44160;&#49353;&#46108; &#47784;&#46304;row&#44032; list&#54805;&#53468;&#47196; &#52636;&#47141;&#46108;&#45796;.
&lt;span class="anchor" id="line-51"&gt;&lt;/span&gt;
&lt;span class="anchor" id="line-52"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; print rows[0]
&lt;span class="anchor" id="line-53"&gt;&lt;/span&gt;&#52395;&#48264;&#51704; row &#52636;&#47141;
&lt;span class="anchor" id="line-54"&gt;&lt;/span&gt;&amp;gt;&amp;gt;&amp;gt; print rows[0][1]
&lt;span class="anchor" id="line-55"&gt;&lt;/span&gt;&#52395;&#48264;&#51704; row&#51032; &#52395;&#48264;&#51704; &#54596;&#46300; &#52636;&#47141;
&lt;/pre&gt;
 &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="line867"&gt;&lt;/p&gt;
&lt;h1 class="line867"&gt;&#52280;&#44256;&#47928;&#54732;&lt;/h1&gt;
&lt;p class="line867"&gt;&lt;a href="http://www.oracle.com/technology/pub/articles/devlin-python-oracle.html" class="http"&gt;http://www.oracle.com/technology/pub/articles/devlin-python-oracle.html&lt;/a&gt; &lt;span class="anchor" id="line-59"&gt;&lt;/span&gt;&lt;span class="anchor" id="line-60"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="line867"&gt;&lt;a href="http://www.python.net/crew/atuining/cx_Oracle/html/front.html" class="http"&gt;http://www.python.net/crew/atuining/cx_Oracle/html/front.html&lt;/a&gt;&lt;/p&gt;
</description>
      <pubDate>Fri, 15 Jun 2007 14:31:27 +0900</pubDate>
      <link>http://joyungki.springnote.com/pages/306266</link>
      <guid>http://joyungki.springnote.com/pages/306266</guid>
    </item>
    <item>
      <title>python</title>
      <description>&lt;h1&gt;about python&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
      <pubDate>Fri, 15 Jun 2007 03:02:04 +0900</pubDate>
      <link>http://joyungki.springnote.com/pages/222625</link>
      <guid>http://joyungki.springnote.com/pages/222625</guid>
    </item>
    <item>
      <title>python_string</title>
      <description>&lt;p&gt;String method&lt;/p&gt;
&lt;p&gt;#1&amp;nbsp;&#47928;&#51088;&#50676; &#52286;&#44592;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;upper(), lower()&amp;nbsp; &#45824;&#49548;&#47928;&#51088; &#48320;&#54872;&lt;/p&gt;
&lt;p&gt;find(s),rfind(s), index(s)&amp;nbsp; &#47928;&#51088;&#50676;&#51012; &#52286;&#51004;&#47732; &#49884;&#51089; &#51064;&#45937;&#49828; &#48152;&#54872;, &#50630;&#51004;&#47732; -1,&amp;nbsp;index&#45716; &#50630;&#51004;&#47732; Value error&#47484; &#48156;&#49373;&#49884;&#53428;&lt;/p&gt;
&lt;p&gt;find&#45716; &#50812;&#51901;&#51012; &#49884;&#51089;&#50948;&#52824;&#47196;, rfind&#45716; &#50724;&#47480;&#51901;&#51012; &#49884;&#51089;&#50948;&#52824;&#47196;&amp;nbsp;(&#44160;&#49353;&#49884;&#51089;&#50948;&#52824; &#51648;&#51221;&#44032;&#45733;)&lt;/p&gt;
&lt;p&gt;#2 &#54200;&#51665;&#48143; &#52824;&#54872;&lt;/p&gt;
&lt;p&gt;rstrip(), lstrip(), strip() &#44277;&#48177;&#51228;&#44144;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;replace(a,b) &#47928;&#51088;&#50676; &#52824;&#54872;&lt;/p&gt;
&lt;p&gt;split(str) &#47928;&#51088;&#50676;&#51012;&amp;nbsp;&#48516;&#54624;&amp;nbsp;=&amp;gt;s.split('\n')&#46972;&#51064;&#45800;&#50948;&#47196; &#48516;&#47532;&lt;/p&gt;
&lt;p&gt;join(str)&amp;nbsp;&#47928;&#51088;&#50676; &#48337;&#54633; '\n'.join(list)&lt;/p&gt;
&lt;p&gt;center(len), rjust(len).&amp;nbsp;ljust(len)&amp;nbsp; =&amp;gt;&#51452;&#50612;&#51652; &#44600;&#51060;&#51032; &#47928;&#51088;&#50640;&#49436; &#44032;&#50868;&#45936; &#50724;&#47480;&#51901; &#50812;&#51901; &#51221;&#47148;&lt;/p&gt;
&lt;p&gt;#3&#47928;&#51088;&#50676;&amp;nbsp;&#51656;&#51032;&lt;/p&gt;
&lt;p&gt;isalnum(),&amp;nbsp;isalpha(), istitle(),isdigit(),islower, isupper(),isspace(),&lt;/p&gt;
&lt;p&gt;true&amp;nbsp;or&amp;nbsp;false &#47532;&#53556;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;#string &#47784;&#46280;&lt;/p&gt;
&lt;p&gt;&#47784;&#46280;&#49345;&#49688;&lt;/p&gt;
&lt;p&gt;digits, octdigits, hexdigits, letters, lowercase, uppercase, punctuation, printable,&amp;nbsp;whitespace&lt;/p&gt;
&lt;p&gt;&#47784;&#46280;&#54632;&#49688;&lt;/p&gt;
&lt;p&gt;capwords(s) - &#44033; &#45800;&#50612;&#51032; &#52395;&#47928;&#51088;&#47484; &#45824;&#47928;&#51088;&#47196;&amp;nbsp;, zfill(s, n) -&amp;nbsp;&#50812;&#51901;&#51032;&amp;nbsp;&#48712;&#51088;&#47532;&#47484;&amp;nbsp;0&#51004;&#47196; &#52292;&#50868;&#45796;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;#&#47928;&#49436; &#47928;&#51088;&#50676;&lt;/p&gt;
&lt;p&gt;&#47784;&#46280;&#51060;&#45208;&lt;/p&gt;
</description>
      <pubDate>Tue, 29 May 2007 00:25:42 +0900</pubDate>
      <link>http://joyungki.springnote.com/pages/227520</link>
      <guid>http://joyungki.springnote.com/pages/227520</guid>
    </item>
  </channel>
</rss>
