gist: https://gist.github.com/genesislive/5098123
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# http://www.pythonchallenge.com/pc/def/channel.html
# <!-- <-- zip -->
# see readme in http://www.pythonchallenge.com/pc/def/channel.zip
import os
import re
import urllib
import zipfile
nothing = '90052'
pattern = 'Next nothing is (\d+)'
file_pattern = '%s.txt'
channel_file = 'channel.zip'
uri = 'http://www.pythonchallenge.com/pc/def/channel.zip'
comments = []
if not os.path.exists(channel_file):
urllib.urlretrieve(uri, channel_file)
file = zipfile.ZipFile('channel.zip')
while True:
try:
nothing = re.search(pattern, file.read(file_pattern % nothing)).group(1)
except:
# Collect the comments.
print file.read(file_pattern % nothing)
break
# print file.getinfo(file_pattern % nothing).comment)
comments.append(file.getinfo(file_pattern % nothing).comment)
print ''.join(comments)
'''
***************************************************************
****************************************************************
** **
** OO OO XX YYYY GG GG EEEEEE NN NN **
** OO OO XXXXXX YYYYYY GG GG EEEEEE NN NN **
** OO OO XXX XXX YYY YY GG GG EE NN NN **
** OOOOOOOO XX XX YY GGG EEEEE NNNN **
** OOOOOOOO XX XX YY GGG EEEEE NN **
** OO OO XXX XXX YYY YY GG GG EE NN **
** OO OO XXXXXX YYYYYY GG GG EEEEEE NN **
** OO OO XX YYYY GG GG EEEEEE NN **
** **
****************************************************************
**************************************************************
'''
本文通过Python脚本解析了一个名为channel.zip的文件。该脚本从一个初始线索开始,自动读取zip文件中一系列文本文件的内容,并提取出下一个线索直至最终揭示隐藏消息。此外,还收集了每个文件的注释部分,最终打印出来。
2237

被折叠的 条评论
为什么被折叠?



