我正在尝试在python 2.7中为cmd编写一个hex-viewer
它工作得很好,但如果我尝试在Windows上查看已编译的文件,它只显示它的一小部分。我已经发现,read()
在第一次出现0x1a
时(以ASCII格式)中断。 Notepad ++将此char显示为SUB。我不知道这个控制字符的作用,为什么read()
停止在这个字符处以及如何避免这种中断。任何人都可以帮助我吗?
这是我的全部代码:
def main():
while True:
print "Enter a file path:"
path = raw_input()
f = open(path, 'r')
text = f.read() # seems to break at 0x1a/SUB
f.close()
for c in text:
hex_c = hex(ord(c))[2:]
if len(hex_c) % 2: # if the hex number consists of 1 digit
hex_c = '0' + hex_c # fill the string with a zero
print hex_c,
print # just as a line break in the console
if __name__ == '__main__':
main()