CreateMutex
까보면 다나와~
툴 정보 및 사용법/Python (8)

유니코드 한글 확인하기

python으로 unicode string이 한글이 포함되어 있는지 여부 확인하기

(일반적으로  AC00–D7AF를 확인하는데 그외에도 많이 있군요.)



    def isKoreanIncluded(word):

        for i in word:

            if ord(i) > int('0x1100',16) and ord(i) < int('0x11ff',16) :

                return True

            if ord(i) > int('0x3131',16) and ord(i) < int('0x318e',16) :

                return True

            if ord(i) > int('0xa960',16) and ord(i) < int('0xa97c',16) :

                return True

            if ord(i) > int('0xac00',16) and ord(i) < int('0xd7a3',16) :

                return True

            if ord(i) > int('0xd7b0',16) and ord(i) < int('0xd7fb',16) :

                return True

        return False



참고

http://unicode.org/charts/PDF/U1100.pdf

http://unicode.org/charts/PDF/U3130.pdf

http://unicode.org/charts/PDF/UA960.pdf

http://unicode.org/charts/PDF/UAC00.pdf

http://unicode.org/charts/PDF/UD7B0.pdf

  Comments,   0  Trackbacks
댓글 쓰기

Python 2.7 Unicode 관련

>>> import sys


#터미널 인코딩 확인

>>> sys.stdin.encoding

'utf-8'


>>> han = '한글'

>>> uhan = u'한글'


>>> type(han)

<type 'str'>

>>> type(uhan)

<type 'unicode'>


#utf-8 일때, cp949는 다른 결과값이 나옴

>>> han

'\xed\x95\x9c\xea\xb8\x80'

>>> uhan

u'\ud55c\uae00'


#터미널이 'cp949'인 경우 han.decode('utf-8')시 에러

#터미널이 'utf-8'인 경우 han.decode('cp949')시 에러

>>> han.decode('utf-8')

u'\ud55c\uae00'

>>> uhan.encode('utf-8')

'\xed\x95\x9c\xea\xb8\x80'



  Comments,   0  Trackbacks
댓글 쓰기

윈도우용 파이썬 패키지 설치할 때 알아두어야 할 것

1. 유니코드 에러

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc7 in position...

이건 한글 문제인거 같은데 python 설치폴더\Lib\site.py의 

def setencoding():

    encoding = "ascii" 

를 아래처럼 바꾸면 된다.

def setencoding():

    encoding = "bmcs"


2. 신텍스 에러

SyntaxError: Non-ASCII character '\xb0' in file...

설명 http://mwultong.blogspot.com/2007/01/python-syntaxerror-non-ascii-character.html

해결 : 1번 에러시 수정했던 site.py파일의 맨 상단에

# -*- coding: cp949 -*-

를 추가해 주면 된다.


인코딩에 관한건 예전에 약간 정리한게 있으니 참고하면 될듯?..


  Comments,   0  Trackbacks
댓글 쓰기

Pyhon colored output string

유용~

 

http://www.siafoo.net/snippet/88

 

print '\033[1;30mGray like Ghost\033[1;m'
print '\033[1;31mRed like Radish\033[1;m'
print '\033[1;32mGreen like Grass\033[1;m'
print '\033[1;33mYellow like Yolk\033[1;m'
print '\033[1;34mBlue like Blood\033[1;m'
print '\033[1;35mMagenta like Mimosa\033[1;m'
print '\033[1;36mCyan like Caribbean\033[1;m'
print '\033[1;37mWhite like Whipped Cream\033[1;m'

Also "[1;" = bold "[0;" = normal 

 

 

 

한김에..ㅋ

  Comments,   0  Trackbacks
댓글 쓰기

Python 코드 몇개(LCS, LRS)

LCS는 알고리즘으로 가장 긴 공통 문자열을 찾는다.

*Longest Common Substring(subsequence)

def longest_common_substring(s1, s2):
    m = [[0] * (1 + len(s2)) for i in xrange(1 + len(s1))]
    longest, x_longest = 0, 0
    for x in xrange(1, 1 + len(s1)):
        for y in xrange(1, 1 + len(s2)):
            if s1[x - 1] == s2[y - 1]:
                m[x][y] = m[x - 1][y - 1] + 1
                if m[x][y] > longest:
                    longest = m[x][y]
                    x_longest = x
            else:
                m[x][y] = 0
    return s1[x_longest - longest: x_longest]


def main():
    a = "12345123jdfjdfjdfjdf"
    b= "s902384jdf9123 jdfj"
    print longest_common_substring(a, b)
   
if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        print "User aborted."
    except SystemExit:
        pass

 

 

LRS는 가장 긴 반복 문자열을 찾는다.

*Longest Repeated Substring

from collections import Counter
a='aaabbbsdfsdfasdfbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbaaaa34243sfsaef'
times=3
for n in range(1,len(a)/times+1)[::-1]:
substrings=[a[i:i+n] for i in range(len(a)-n+1)]
freqs=Counter(substrings)
if freqs.most_common(1)[0][1]>=3:
seq=freqs.most_common(1)[0][0]
break
print "sequence '%s' of length %s occurs %s or more times"%(seq,n,times)

 

 

  Comments,   0  Trackbacks
댓글 쓰기

파이썬 팁 모음

http://coreapython.hosting.paran.com/etc/Python%20Tips,%20Tricks,%20and%20Hacks.htm


나중에 또 볼일이 있겠네요~

  Comments,   0  Trackbacks
댓글 쓰기

PYTHON 파이똥 한글 인코딩 문제 참고..

#!/usr/bin/python

# -*- coding: utf-8 -*-

# -*- coding: euc-kr -*- //우분투에서 필수 영문ver


print u'\uc548\ub155\ud558\uc138\uc694gkgksd'


#print unicode('한글asdfasdfasdfasdf','EUC-KR') //우분투 

#print unicode('한글asdfasdfasdfasdf','MBCS')

#print unicode('한글asdfasdfasdfasdf','EUC-KR').ENCODE('UTF-8')

print unicode('한글asdfasdfasdfasdf')

print unicode('윈도우즈 파이썬은 기본적으로 EUC-KR 인코딩')

print unicode('우분투 파이썬은 EUC-KR 인코딩해야함') //영문ver

  Comments,   0  Trackbacks
댓글 쓰기

python version 2.6.5 -> 2.7.2 (using pythonbrew)

ubuntu 10.04


python version 2.6.5 -> 2.7.2

(python 2.7.2는 설치하지 않은 상태)


http://gauryan.blogspot.kr/2011/07/ubuntu-1004-lts-nginx-django-13-fastcgi.html


# aptitude install zlibc zlib1g-dev

# echo 'export PYTHONBREW_ROOT=/opt/pythonbrew' >> /etc/profile; source /etc/profile

# curl -kLO http://xrl.us/pythonbrewinstall; chmod +x pythonbrewinstall; ./pythonbrewinstall

# echo 'source /opt/pythonbrew/etc/bashrc' >> /etc/profile; source /etc/profile

# pythonbrew install --force 2.7.2 (원본으로 안되서 이렇게 하니 되네요.)

# pythonbrew switch 2.7.2


그외 삽질하게 했던 자료들 링크

http://stackoverflow.com/questions/5233536/python-2-7-on-ubuntu

https://github.com/utahta/pythonbrew



--------------------------------///

그외 방법들로 2.7.2로 바꾸는 방법(2.7.2로 설치 후 defult version을 교체)


우분투 파이썬 defult version 바꾸기

http://intellectseed.wordpress.com/2012/10/26/how-to-change-default-python-version-in-ubuntu/


yara python 설치

http://santi-bassett.blogspot.kr/2013/01/installing-cuckoo-sandbox-on-virtualbox.html

!!!yara python 설치하려면 개발 모듈이 설치 되야함 

apt-get install python2.7-dev


python2.7 설치(아래링크는 2.6으로 낮추는 방법)

http://intellectseed.wordpress.com/2012/10/26/how-to-change-default-python-version-in-ubuntu/

2.7 설치 후 링크만 설정해주면 됨

2.7은 소스 받아서 설치함

  Comments,   0  Trackbacks
댓글 쓰기