是否有一个简单的Python函数可以像这样解压缩.zip文件?
unzip(ZipSource, DestinationDirectory)
我需要在Windows,Mac和Linux上执行相同操作的解决方案:如果zip是文件,则始终生成文件;如果zip是目录,则始终生成目录;如果zip是多个文件,则始终生成目录。始终位于给定的目标目录内,而不是
如何在Python中解压缩文件?
使用zipfile标准库中的模块:
zipfile
import zipfile,os.path def unzip(source_filename, dest_dir): with zipfile.ZipFile(source_filename) as zf: for member in zf.infolist(): # Path traversal defense copied from # http://hg.python.org/cpython/file/tip/Lib/http/server.py#l789 words = member.filename.split('/') path = dest_dir for word in words[:-1]: while True: drive, word = os.path.splitdrive(word) head, word = os.path.split(word) if not drive: break if word in (os.curdir, os.pardir, ''): continue path = os.path.join(path, word) zf.extract(member, path)
请注意,使用的时间extractall会短很多,但是该方法 无法 防止Python 2.7.4之前的路径遍历漏洞。如果可以保证您的代码在最新版本的Python上运行。
extractall