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

来源:互联网 发布:淘宝上哪家药店是真的 编辑:程序博客网 时间:2024/05/23 16:15

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,zipfilepath = 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()