擅长:python、mysql、java
<p>只需在文件名的末尾加上“/”即可。</p>
<pre><code>import zipfile
def isdir(z, name):
return any(x.startswith("%s/" % name.rstrip("/")) for x in z.namelist())
f = zipfile.ZipFile("sample.zip", "r")
print isdir(f, "a")
print isdir(f, "a/b")
print isdir(f, "a/X")
</code></pre>
<p>你用这条线</p>
<pre><code>any(x.startswith("%s/" % name.rstrip("/")) for x in z.namelist())
</code></pre>
<p>因为归档文件可能不显式地包含目录;只包含具有目录名的路径。</p>
<p>执行结果:</p>
<pre><code>$ mkdir -p a/b/c/d
$ touch a/X
$ zip -r sample.zip a
adding: a/ (stored 0%)
adding: a/X (stored 0%)
adding: a/b/ (stored 0%)
adding: a/b/c/ (stored 0%)
adding: a/b/c/d/ (stored 0%)
$ python z.py
True
True
False
</code></pre>