python可读入十六进制数据吗_python 读取文件、并以十六进制的方式写入到新文件...

#!/usr/bin/env python

infile = file("in.mp3","rb")

outfile = file("out.txt","wb")

def main():

while 1:

c = infile.read(1)

if not c:

break

outfile.write(hex(ord(c)))

outfile.close()

infile.close()

if __name__ == '__main__':

main()

下面是我自己改过的

#coding:utf-8

# 程序目标,读取1.bmp,然后以16进制方式写到txt文件

def main():

f = open("1.bmp","rb")

outfile = open("out.txt","wb")

i = 0

while 1:

c = f.read(1)

i = i + 1

if not c:

break

if i%32 == 0:

outfile.write("\n")

else:

if ord(c) <= 15:

outfile.write("0x0"+hex(ord(c))[2:]+" ")

else:

outfile.write(hex(ord(c))+" ")

outfile.close()

f.close()

if __name__=="__main__":

main()

效果如下:

06135407-bb3ccfa503c941048d8c48adad43d877.png

当然,我需要的是真正的十六进制值。然后代码变成了这样

#coding:utf-8

# 程序目标,读取1.bmp,然后以16进制方式写到txt文件

def main():

f = open("1.bmp","rb")

outfile = open("out.txt","wb")

i = 0

while 1:

c = f.read(1)

i = i + 1

if not c:

break

if i%32 == 0:

outfile.write("\n")

else:

if ord(c) <= 15:

outfile.write(("0x0"+hex(ord(c))[2:])[2:]+" ")

else:

outfile.write((hex(ord(c)))[2:]+" ")

outfile.close()

f.close()

if __name__=="__main__":

main()

文件的数据变成了

06140850-f2cf58796202414aaddf1c69617d228b.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值