python修改zip文件内容_windows-将zip文件内容提取到Python 2.7中的特定目录

这篇博客讨论了如何使用Python 2.7将ZIP文件内容提取到Windows上的特定目录,提供了多种解决方案,包括使用`zipfile`模块的`extract`和`extractall`方法,以及处理用户输入来指定目标路径的方法。
摘要由CSDN通过智能技术生成

windows-将zip文件内容提取到Python 2.7中的特定目录

这是我当前用于提取与脚本位于同一当前工作目录中的zip文件的代码。 如何指定要提取到的其他目录?

我尝试的代码未将其提取到我想要的位置。

import zipfile

fh = open('test.zip', 'rb')

z = zipfile.ZipFile(fh)

for name in z.namelist():

outfile = open(name, 'wb')

outfile.write('C:\\'+z.read(name))

outfile.close()

fh.close()

6个解决方案

105 votes

我认为您在这里只是一头雾水。 可能应该是以下内容:

import zipfile

fh = open('test.zip', 'rb')

z = zipfile.ZipFile(fh)

for name in z.namelist():

outpath = "C:\\"

z.extract(name, outpath)

fh.close()

如果只想提取所有文件:

import zipfile

with zipfile.ZipFile('test.zip', "r") as z:

z.extractall("C:\\")

对最新版本的Python使用pip install zipfile36

import zipfile36

secretmike answered 2020-01-17T17:38:59Z

12 votes

我尝试了该线程中的其他答案,但最终的解决方案很简单:

zfile = zipfile.ZipFile('filename.zip')

zfile.extractall(optional_target_folder)

查看extractall,但仅将其与可信赖的zip文件一起使用。

fiatjaf answered 2020-01-17T17:39:23Z

5 votes

添加到上述secretmike的答案中,支持python 2.6提取所有文件。

import zipfile

import contextlib

with contextlib.closing(zipfile.ZipFile('test.zip', "r")) as z:

z.extractall("C:\\")

Slakker answered 2020-01-17T17:39:43Z

3 votes

如果您只想使用Python从命令行中提取一个zip文件(例如,因为您没有可用的unzip命令),则可以直接调用zipfile模块

python -m zipfile -e monty.zip target-dir/

看一下文档。 它还支持压缩和列出内容。

Peter Gibson answered 2020-01-17T17:40:08Z

2 votes

彼得·德·里瓦兹(Peter de Rivaz)在上面的评论中有观点。 您将要在对open()的调用中包含目录。您将要执行以下操作:

import zipfile

import os

os.mkdir('outdir')

fh = open('test.zip','rb')

z = zipfile.ZipFile(fh)

for name in z.namelist():

outfile = open('outdir'+'/'+name, 'wb')

outfile.write()

outfile.close()

fh.close()

razzmataz answered 2020-01-17T17:40:29Z

0 votes

我已经修改了代码,要求用户输入文件名及其需要提取的位置,因此用户将对放置提取的文件夹的位置以及应该为提取的文件夹分配什么名称有更多的控制权。

import zipfile

#picking zip file from the directory

ZipFileName = raw_input("Enter full path to zip file:")

fh = open( ZipFileName , 'rb')

z = zipfile.ZipFile(fh)

#assigning a name to the extracted zip folder

DestZipFolderName = raw_input("Assign destination folder a name: ")

DestPathName = raw_input("Enter destination directory: ")

DestPath = DestPathName + "\\" + DestZipFolderName

for name in z.namelist():

outpath = DestPath

z.extract(name, outpath)

fh.close()

sarfarazit08 answered 2020-01-17T17:40:49Z

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值