반응형

파일내용 hex dump 로 보기



1. 문자열 처리로 hex 보기

   <참고> http://ebeab.com/2012/10/10/python-string-format/

f = open('blurcat.bmp','rb')
t = f.read()
type(t)
print 'file size = ', len(t)
print t[:30]
print repr(t[:30])

kk = t[:30]

for x in kk:
    # print hex(ord(x))
    pass
    
l = [hex(ord(x)) for x in kk]
print ' l ==> ', l
print ''.join(l)
print '\n ----------------------------------- \n'

l2 = [hex(ord(x))[2:] for x in kk]
print l2
m = ''.join(l2)
print 'len of m  = ', len(m)
print m
print '\n ----------------------------------- \n'

k2 = [ '%02x'%ord(x) for x in kk]   # '%02x' -> 16진수 표시, 2자리, 0 으로 채우기
print 'k2 = ',k2
print ''.join(k2)
print '\n ----------------------------------- \n'

k3 = [ '{:0>2x}'.format(ord(t)) for t in kk]  # '{:0>2x}' -> 16진수, 2자리, 0 으로 채우기, 우측정렬(>)
print 'k3 = ',k3
print ''.join(k3)
print '\n ----------------------------------- \n'

k4 = [  '{:02x}'.format(ord(t)) for t in kk]   #  '{:02x}' --> 16진수 표시, 2자리, 0 으로 채우기
print 'k4 = ',k4
print ''.join(k4)

ord(x)  --- 문자 x 의 코드 숫자 출력   

            https://docs.python.org/2/library/functions.html#ord



2. binascii 모듈 사용하기

  <참고> http://stackoverflow.com/questions/3964245/convert-file-to-hex-string-python

import binascii

f = open('blurcat.bmp','rb')
t = f.read()
tt = binascii.hexlify(t)
print type(tt)

# 1 byte 당  hexa 표시는 2자리숫자이므로, 30 bytes 데이터를 hexa 로 볼려면 60개를 불러봐야함.
print tt[:60]  



>>> binascii.hexlify('abc')
'616263'
>>> binascii.unhexlify('616263')
'abc'
>>> 




**  파일전체 hex dump 참고 사이트 **


http://c2.com/cgi/wiki?HexDumpInManyProgrammingLanguages


http://stackoverflow.com/questions/16443185/reading-a-binary-file-on-backwards-using-python



반응형
Posted by 자유프로그램
,
반응형

python으로 윈도우 terminal 명령어 실행하기


참고 사이트: https://docs.python.org/2/library/subprocess.html#subprocess.call


참고 동영상 :

http://www.youtube.com/watch?v=wbM-BkAqxWM

http://www.youtube.com/watch?v=jq3uTixxrns

http://www.youtube.com/watch?v=thqB3Tbd9Xo


>>> import subprocess
>>> subprocess.call(["ls", "-l"])
0

--> 이 경우 terminal (명령프롬프트) 창이 잠깐 나타났다가 사라져서 결과 확인 못함..


>>> dis = subprocess.check_output(["ls", "-l"])
>>> print dis

---> 결과를 dis 에 저장하여, 출력 가능하다.







반응형
Posted by 자유프로그램
,
반응형

문자열 코드 실행 --- eval, exec, compile



1. eval   --- 문자열로 된 식을 실행 


 
>>> a = '3 + 4'
>>> eval(a)
7
>>> b = eval(a)
>>> b
7


2. exec  --- 문자열로 된 문장을 실행 


 
>>> cmd = 'k = 3 + 4'
>>> exec(cmd)
>>> k          # 없던 k 라는 변수가 생김.
7



3. compile    -- https://docs.python.org/2/library/functions.html#compile

   --  문자열 소스를 컴파일 하여 , eval  이나, exec 에서 사용하게함. 


 
>>> cmd = 'print 3333*23'
>>> cc = compile(cmd, '<string>', 'exec')
>>> exec(cc)
76659


>>> cmd2 = '33 + 44'
>>> cc2 = compile(cmd2, '<string>', 'eval')
>>> eval(cc2)
77
>>> b= eval(cc2)
>>> b
77
>>>

반응형
Posted by 자유프로그램
,
반응형

setuptools, easy_install, pip 설치하기


환경 : windows 7 32bit, python 2.7.5



setuptools 설치하면 python Script 폴더 내부에 easy_install 도 설치된다. 내부적으로 easy_install 사용한다.


https://pypi.python.org/pypi/setuptools#easy-install

Once installation is complete, you will find an easy_install program in your Python Scripts subdirectory. 

...

Setup scripts using setuptools now always install using easy_install internally, for ease of uninstallation and upgrading.


http://pythonhosted.org/setuptools/easy_install.html

Easy Install is a python module (easy_install) bundled with setuptools that lets you automatically download, build, install, and manage Python packages.




<setuptools 사이트>


http://pythonhosted.org/setuptools/index.html#




< 쉽게 설치 하는 방법 >


windows용 setuptools 설치 실행파일

http://www.lfd.uci.edu/~gohlke/pythonlibs/#setuptools


windows용 pip 설치 실행파일

http://www.lfd.uci.edu/~gohlke/pythonlibs/#pip




** setuptools, pip 설치후 windows Path 에 다음을 추가하라!

C:\Python27\;C:\Python27\Scripts\





< pip 옵션 >





** 내 컴퓨터에 설치된 모듈 목록 보기





** 설치된 모듈의 위치정보 등 알아내기

    --  pip show  설치된모듈이름










반응형
Posted by 자유프로그램
,
반응형

_tcsclen, _tcslen, strlen, wcslen,  lstrlen 비교




** _tcsclen, _tcslen, strlen, wcslen    ---> ansi C 함수


참고 : http://msdn.microsoft.com/ko-kr/library/78zh94ax.aspx

        http://www.cplusplus.com/reference/cwchar/wcslen/



TCHAR.H 루틴

_UNICODE 및 _MBCS 미정의

_MBCS 정의됨

_UNICODE 정의됨

_tcslen

strlen

strlen

wcslen

_tcsclen

strlen

_mbslen

wcslen

_tcsclen_l

strlen_l

_mbslen_l

wcslen_l



문자 수를 반환 하는 각이 함수 str에서 문자 수를 반환하는 각 함수, (터미널 NULL을 제외한). 


strlen 는 단일 바이트 문자 문자열로서 문자열을 해석하고, 그래서 심지어 문자열이 멀티 바이트 문자를 포함하더라도 반환값은 항상 바이트 수와 같습니다. 




** lstrlen   ---> windows api 함수


 http://msdn.microsoft.com/en-us/library/windows/desktop/ms647492(v=vs.85).aspx


lstrlenW (Unicode) and lstrlenA (ANSI)


returns the length of the string, in characters. 



반응형
Posted by 자유프로그램
,