683

zipfileドキュメントを読みましたが、ファイルを解凍する方法がわかりませんでした。ファイルを解凍する方法しか理解できませんでした。zipファイルのすべての内容を同じディレクトリに解凍するにはどうすればよいですか?

4

9 に答える 9

1281
import zipfile
with zipfile.ZipFile(path_to_zip_file, 'r') as zip_ref:
    zip_ref.extractall(directory_to_extract_to)

それはほとんどそれです!

于 2010-08-10T16:23:27.560 に答える
370

Python 3.2以降を使用している場合:

import zipfile
with zipfile.ZipFile("file.zip","r") as zip_ref:
    zip_ref.extractall("targetdir")

コンテキストマネージャー構造を使用している ため、 closeを使用したり、try/catchを使用したりする必要はありません。

于 2016-04-16T10:11:09.033 に答える
68

zipfileやや低レベルのライブラリです。それが提供する詳細が必要でない限り、あなたはshutilのより高いレベルの関数make_archiveとを逃れることができますunpack_archive

make_archiveすでにこの回答で説明されています。に関してはunpack_archive

import shutil
shutil.unpack_archive(filename, extract_dir)

unpack_archivefilename.zip、、.tar.gzなど)の「拡張子」から圧縮形式を自動的に検出しmake_archiveます。また、filenamePython 3.7以降のextract_dir任意のパスのようなオブジェクト(例:pathlib.Pathインスタンス)にすることができます。

于 2020-09-28T21:51:21.207 に答える
47

extractallPython 2.6以降を使用している場合は、このメソッドを使用してください

zip = ZipFile('file.zip')
zip.extractall()
于 2010-08-10T16:23:50.157 に答える
20

インポートのみも可能ですZipFile

from zipfile import ZipFile
zf = ZipFile('path_to_file/file.zip', 'r')
zf.extractall('path_to_extract_folder')
zf.close()

Python2およびPython3で動作します

于 2018-09-13T16:28:02.207 に答える
12

これを試して :


import zipfile
def un_zipFiles(path):
    files=os.listdir(path)
    for file in files:
        if file.endswith('.zip'):
            filePath=path+'/'+file
            zip_file = zipfile.ZipFile(filePath)
            for names in zip_file.namelist():
                zip_file.extract(names,path)
            zip_file.close() 

パス:ファイルのパスを解凍します

于 2019-07-03T12:53:33.337 に答える
6

コードを書く代わりに、シェルでそれを行いたい場合。

 python3 -m zipfile -e myfiles.zip myfiles/

myfiles.zipはzipアーカイブでありmyfiles、ファイルを抽出するためのパスです。

于 2020-08-05T00:20:26.253 に答える
4
from zipfile import ZipFile
ZipFile("YOURZIP.zip").extractall("YOUR_DESTINATION_DIRECTORY")

ファイルを抽出するディレクトリは、以前に存在する必要はありません。この時点で名前を付けます。

YOURZIP.zipは、プロジェクトが同じディレクトリにある場合のzipの名前です。そうでない場合は、PATHを使用します。例:C://....// YOURZIP.zip

管理者として自分のIDE(つまり、Anaconda)を起動しようとしている場合は、PATH内で/他の人が逃げることを考えてください/permission denied

YOUR_DESTINATION_DIRECTORYは、プロジェクトと同じディレクトリに作成されます

于 2020-07-02T14:06:19.340 に答える
2
import os 
zip_file_path = "C:\AA\BB"
file_list = os.listdir(path)
abs_path = []
for a in file_list:
    x = zip_file_path+'\\'+a
    print x
    abs_path.append(x)
for f in abs_path:
    zip=zipfile.ZipFile(f)
    zip.extractall(zip_file_path)

zipでない場合、これにはファイルの検証は含まれません。フォルダに.zip以外のファイルが含まれている場合、失敗します。

于 2018-04-13T10:40:56.297 に答える