解压缩脚本遇到的一些问题

1.一直遇到路径找不到的问题。这个问题我纠结了好久。后来发现直接解压当前目录,没有问题。我就怀疑是路径问题了,最后发现就只是因为一个空格问题!创建的文件夹后面没有空格。但是找的路径里面是有空格的。好久我都没看出来。。。解决方法,用strip()去一下空格就可以了。

2.split犯的一个错误。我想把文件名里面包含monday和tuesday的解压到一个指定的文件夹中。比如Thisismonday,Thisistuesday。我想都解压到Thisis这个文件夹中,于是我用了这样的话。

paths = portion[0].split("monday"or"tuesday")[0].strip()

很明显,这种切分会导致失败,因为split找不到第一个的时候,它会当作空值进行切分。后面的tuesday就不会再使用到了。正确的写法应该是

paths = portion[0].split("monday")
[0].split("tuesday")[0].strip()

代码实现的功能是把文件名中以monday或tuesday结尾的zip文件进行解压,例如Thisismonday.zip,Thisismonday.zip,当前目录下创建新的Thisis,解压到Thisis文件夹中。代码还可以进一步扩展,修改一下就可以自己用了。

import os,sys,zipfile
path = sys.argv[1]
mylist = os.listdir(path)
l = []
a = [l.append(os.path.join(path,i)) for i in mylist]

for mypath in l:
    os.chdir(mypath)
    for i in os.listdir(mypath):
        portion = os.path.splitext(i)
        savepath = os.path.join(mypath,i)
        if portion[0][-6:] == "monday"or"uesday" and portion[1] == ".zip":
            myzipfile = zipfile.ZipFile(savepath,"r")
            for file in myzipfile.namelist():
                paths = portion[0].split("monday")[0].split("tuesday")[0].strip()
                if os.path.isdir(os.path.join(os.getcwd(),paths)):
                    pass
                else:
                    os.mkdir(os.path.join(os.getcwd(),paths))
                pathss = os.path.join(os.getcwd(),paths)
                myzipfile.extract(file,pathss)
            myzipfile.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值