Zipfiles的Python问题

 Rosalind33 发布于 2023-01-20 11:56

免责声明:编码新手

C:\Python27\python.exe C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py

Traceback (most recent call last):
True

  File "C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py", line 80, in 

    o = t.getdirList()
True
  File "C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py", line 36, in getdirList
    self.getModinfo(os.path.join(p, o[n]), 'name')
  File "C:/Users/Evolution/PycharmProjects/MCMODVERSION/stuff/main.py", line 46, in getModinfo
    y = zipfile.ZipFile(x)
  File "C:\Python27\lib\zipfile.py", line 766, in __init__
    self._RealGetContents()
  File "C:\Python27\lib\zipfile.py", line 832, in _RealGetContents
    raise BadZipfile("Truncated central directory")
zipfile.BadZipfile: Truncated central directory

Process finished with exit code 1

正在执行的代码:

def getdirList(self):
    p = 'C:\Users\Evolution\Desktop\mods'
    o = [f for f in listdir(p) if isfile(join(p, f))]
    for mod in range(len(o)):
        print o[mod]
        self.getModinfo(os.path.join(p, o[mod]), 'name')


def getModinfo(self,mod,type):
    """ Types:
    modid, name, description, version, mcversion, url
    updateurl, authors, credits, dependencies """
    x = file(mod)
    print x
    print zipfile.is_zipfile(x)
    y = zipfile.ZipFile(x)
    print y

修正了代码:

def getdirList(self):
    p = r'C:\Users\Evolution\Desktop\mods'
    o = [f for f in listdir(p) if isfile(join(p, f))]
    for mod in range(len(o)):
        print o[mod]
        self.getModinfo(os.path.join(p, o[mod]), 'name')

def getModinfo(self,mod,type):
    """ Types: modid, name, description, version, mcversion, 
    url, updateurl, authors, credits, dependencies """
    try:
        x = open(mod, 'rb')
        y = zipfile.ZipFile(x)
        z = y.read(self.minfo)
        #print z
        #zz = self.parseIt(z, '%s": ' % type, ',')
        #print zz
    except KeyError:
        print "ERROR: %s has no %s file!" % (x, self.minfo)
        print "%s" % "-" * 50
    x.close()

现在我运行一个检查,你可以看到说zip文件实际上是一个zip文件.超过一半的文件抛出此异常..jar和.zip

是的我手动打开它们,它们没有损坏或锁定或任何东西.我可以做些什么,或者我可以使用另一个库来操纵python中的achrives?

谢谢.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有