解释python代码

#!/usr/bin/envpython#coding=utf-8data=open('data.txt')out=open('out','a')whileTrue:d=... #!/usr/bin/env python
#coding=utf-8
data = open('data.txt')
out = open('out','a')
while True:
d = data.read(8)
if len(d) != 8:
break
out.write(chr(eval("0b%s"%d)))
data.close()
out.close()

这个程序是知道一个7z压缩包的0,1代码(在data.txt里),然后还原。谁能接摄一下 out.write(chr(eval("0b%s"%d)))这句代码,越详细越好,谢谢!!!
展开
 我来答
草原橡树
2014-04-11 · TA获得超过156个赞
知道小有建树答主
回答量:117
采纳率:100%
帮助的人:143万
展开全部
这段代码的意思是打开输入文件,每次读取8个字符,(没有判断他是否只包含0或1可以考虑加一行re.compile([01]{8})来判断), 在前面加上0b表示他是二进制表示的数字,eval转换字符串为数值也就是ASCII码 chr 再把它转换成相应的字符然后写到输出文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柒涩琴
2014-04-12 · TA获得超过728个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:132万
展开全部
# Assume some d is 01100001
>>> "0b%s" % "01100001"
'0b01100001'
>>> eval(_)
97
>>> chr(_)
'a'

至于out.write就是将'a'写入到类文件对象out里。

更多追问追答
追问
谢谢!有点思路了,你这个是转成了二进制,怎么可以转成十六进制?
追答
并不是转换成了二进制,而是从文件中读入的是二进制,通过这段代码转为对应的字符。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式