PythonChallenge 6 解答过程

今天有空,接着做python challenge的第六题

根据前几个题的经验,直接看网页源码。

源码提示“zip”,随即尝试将网页地址中的“html”换成“zip”,提示下载压缩包。

下载并保存在桌面(pythonChallenge6.zip)。发现里面的“readme.txt”文件,

随即编写程序,从90052.txt开始读取文件内容。

import re,os
import zipfile as zp
PATH = "/Users/username/Desktop"      #下载的压缩包存放的路径
os.chdir(PATH)          #将工作目录转至所下载zip的文件目录

def getEnd(nums,z):
    """
    利用递归的方法,读取压缩包内每个文件,
    直至找到内容不一样的文件,返回该文件名
    l1 是用来保存各文件comment的
    """
    global l1
    filename = nums+".txt"
    target = z.read(filename)
    l1.append(z.getinfo(filename).comment)
    if "Next nothing is " in target:
        val = re.search("\d+",target).group()
        return getEnd(val,z)
    else:
        print z.read(filename)
        return filename

if __name__=="__main__":
    global l1
    l1 = []
    z = zp.ZipFile("pythonChallenge6.zip")
    tar = getEnd("90052",z)
    print tar
    s1 = ""
    for x in l1:
        s1 += x
    print s1
需要说明的是,第一次写程序时,发现打印出tar的值是:collect  the comments

当时看到这个结果,疑问!(还要看评论???)

幸好想起了zipfile.ZipFile对象中的comment属性,

于是再完善程序,收集压缩包内各个文件的comment,并打印成字符串。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值