파일내용 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


참고 동영상 :

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

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

https://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 자유프로그램