0

zipfileスクリプトで.zipファイルを解凍するために使用しています。これが私のコードです:

def unzip(src, dst):
    zf = zipfile.ZipFile(src)
    for member in zf.infolist():
        words = filter(None, member.filename.split('/'))
        path = dst
        for word in words[:-1]:
            drive, word = os.path.splitdrive(word)
            head, word = os.path.split(word)
            if word in (os.curdir, os.pardir): continue
            path = os.path.join(path, word)
        zf.extract(member, path)
    dirMacosx = "%s/__MACOSX" % (dst)
    if os.path.exists(dirMacosx):
        shutil.rmtree(dirMacosx)

LinuxまたはOSXでファイルを解凍すると正常に動作しますが、Windowsで実行すると、ディレクトリとその中のすべてのディレクトリが作成されますが、ファイルは作成されません。なぜこれなのか?

4

1 に答える 1

0

UnixライクおよびWindowsとの互換性のために、

words = filter(None, member.filename.split('/'))

words = filter(None, member.filename.split(os.sep))

これは、/Unixライクなものと\Windowsで使用します。

于 2013-01-27T18:14:53.687 に答える