Python挑战游戏( PythonChallenge)闯关之路Level- 5

本文介绍了作者在PythonChallenge游戏中遇到的第五关,通过解析网页源码发现线索,利用pickle模块解决谜题。pickle模块用于处理结构化数据,允许将字典等对象序列化和反序列化,实现数据的持久化存储。文章还探讨了pickle的安全性和应用场景。
摘要由CSDN通过智能技术生成

时隔两个月, 又重新回来写博客了

今天重新来做这个挑战题目


首先入口地址:http://www.pythonchallenge.com/pc/def/peak.html

打开来看, 没错,你没有看错,只有一副画


然后画的下面 有一句话  "pronounce it",   什么鬼! 它的发音???

只看这个看不出来什么意思.


那么按照以往的经验, 直接F12 看网页源码吧

<html>  
<head>  
  <title>peak hell</title>  
  <link rel="stylesheet" type="text/css" href="../style.css">  
</head>  
<body>  
<center>  
<img src="peakhell.jpg"/>  
<br><font color="#c0c0ff">  
pronounce it  
<br>  
<peakhell src="banner.p"/>  
</body>  
</html>  
  
<!-- peak hell sounds familiar ? -->  

这样明显看到有一个文件  banner.p, 直觉认为需要打开它 :http://www.pythonchallenge.com/pc/def/banner.p

这样我们看到了一个乱码的文本文件

接着这个源码下面有一句提示“peak hell sounds familiar ”!   这一句话就比较重要了

前面说他的发音, 这里提示说, 发音和“peak hell ” 类似,   再结合python的知识, 这一关应该是要用到 pickle 这个包了(我不会告诉你我是查看别人的)!


好了,分析工作完成,将这个文件内容下载到本地,然后执行解析程序如下(报告老板,他是抄的):

#!/usr/bin/python
# coding:utf-8

import pickle

f=open('1.txt')
for line in pickle.load(f):
	print ''.join([x[0] * x[1] for x in line])
	
f.close()
然后得到了下面的结果:

                                                                                               
              #####                                                                      ##### 
               ####                                                                       #### 
               ####                                                                       #### 
               ####                                                                       #### 
               ####                                                                       #### 
               ####                                                                       #### 
               ####                                                                       #### 
               ####                                                                       #### 
      ###      ####   ###         ###       #####   ###    #####   ###          ###       #### 
   ###   ##    #### #######     ##  ###      #### #######   #### #######     ###  ###     #### 
  ###     ###  #####    ####   ###   ####    #####    ####  #####    ####   ###     ###   #### 
 ###           ####     ####   ###    ###    ####     ####  ####     ####  ###      ####  #### 
 ###           ####     ####          ###    ####     ####  ####     ####  ###       ###  #### 
####           ####     ####     ##   ###    ####     ####  ####     #### ####       ###  #### 
####           ####     ####   ##########    ####     ####  ####     #### ##############  #### 
####           ####     ####  ###    ####    ####     ####  ####     #### ####            #### 
####           ####     #### ####     ###    ####     ####  ####     #### ####            #### 
 ###           ####     #### ####     ###    ####     ####  ####     ####  ###            #### 
  ###      ##  ####     ####  ###    ####    ####     ####  ####     ####   ###      ##   #### 
   ###    ##   ####     ####   ###########   ####     ####  ####     ####    ###    ##    #### 
      ###     ######    #####    ##    #### ######    ###########    #####      ###      ######
                                                                                               

也就是说下一关的地址是:http://www.pythonchallenge.com/pc/def/channel.html

关于它本关更多的解决方案:http://wiki.pythonchallenge.com/index.php?title=Level4:Main_Page


那现在回头来看一下 pickle 这个包是什么意思

百度一下,得到这样的答案

加工数据的,可以用来存取结构化数据。举个例子:

一个字典a = {'name':'Tom','age':22},用pickle.dump存到本地文件,所存数据的结构就是字典,而普通的file.write写入文件的是字符串。读取时,pickle.load返回的是一个字典,file.read返回的是一个字符串。如下代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值