Python tar gz unpack

Read/unzip File(s) from Zip Or Tar.gz With Python

In this article, we’ll see how to read/unzip file(s) from zip or tar.gz with Python. We will describe the extraction of single or multiple files from the archive.

If you are interested in parallel extraction from archive than you can check: Python Parallel Processing Multiple Zipped JSON Files Into Pandas DataFrame

Step 1: Get info from Zip Or Tar.gz Archive with Python

First we can check what is the content of the zip file by this code snippet:

from zipfile import ZipFile zipfile = 'file.zip' z = ZipFile(zipfile) z.infolist() 

From which we can find two filenames and size:

Step 2: List and Read all files from Archive with Python

Next we can list all files from the archive in a list by:

from zipfile import ZipFile archive = 'file.zip' zip_file = ZipFile(archive) [text_file.filename for text_file in zip_file.infolist() ] 

If you like to filter them — for example only .json ones — or read the files as Pandas DataFrames you can do:

from zipfile import ZipFile archive = 'file.zip' zip_file = ZipFile(archive) dfs = dfs 

Step 3: Extract files from zip archive With Python

Package zipfile can be used in order to extract files from zip archive for Python. Basic usage is shown below:

import zipfile archive = 'file.zip' with zipfile.ZipFile(archive, 'r') as zip_file: zip_file.extractall(directory_to_extract_to) 

Step 4: Extract files from Tar/Tar.gz With Python

For Tar/Tar.gz files we can use the code below in order to extract the files. It uses module — tarfile and differs the two types in order to use proper extraction mode:

import tarfile zipfile = 'file.zip' if zipfile.endswith("tar.gz"): tar = tarfile.open(zipfile, "r:gz") elif zipfile.endswith("tar"): tar = tarfile.open(zipfile, "r:") tar.extractall() tar.close() 

Note: All files from the archive will be unzipped in the current working directory for the script.

Step 5: Extract single file from Archive

If you like to get just a single file from Archive then you can use the method: zipObject.extract(fileName, ‘temp_py’) . Basic usage is shown below:

import zipfile archive = 'file.zip' with zipfile.ZipFile(archive, 'r') as zip_file: zip_file.extract('text1.txt', '.') 

In this example we are going to extract the file — ‘text1.txt’ in the current working directory. If you like to change the output directory than you can change the second parameter — ‘.’

Conclusion

In this tutorial, we covered how to extract single or multiple files from Archive with Python. It covered two different python packages — zipfile and tarfile .

You’ve also learned how to list and get info from archived files.

By using SoftHints — Python, Linux, Pandas , you agree to our Cookie Policy.

Источник

Распаковка файлов из архивов zip или tar.gz с помощью Python

cat box1

Из этой статьи вы узнаете, как распаковать один или несколько архивов zip и tar.gz и получить информацию о них средствами языка Python. Мы рассмотрим извлечение одного или нескольких файлов из архива.

Шаг 1: получить информацию из архива zip или tar.gz

Сперва мы просмотрим содержимое zip-файла с помощью этого фрагмента кода:

from zipfile import ZipFile zipfile = 'file.zip' z = ZipFile(zipfile) z.infolist()

Таким образом мы сможем узнать размеры и имена двух файлов:

Шаг 2: перечислить и прочитать все файлы из архива

Теперь мы можем получить список всех файлов в архиве:

from zipfile import ZipFile archive = 'file.zip' zip_file = ZipFile(archive) [text_file.filename for text_file in zip_file.infolist() ]
['pandas-dataframe-background-color-based-condition-value-python.png', 'text1.txt']

Если вам нужно отсортировать файлы – например, получить только json – или прочитать их в формате датафреймов Pandas, можно сделать это следующим образом:

from zipfile import ZipFile archive = 'file.zip' zip_file = ZipFile(archive) dfs = dfs

Шаг 3: извлечь файлы из zip-архива

Пакет zipfile можно использовать для извлечения файлов из zip-архивов. Базовый пример:

import zipfile archive = 'file.zip' with zipfile.ZipFile(archive, 'r') as zip_file: zip_file.extractall(directory_to_extract_to)

Шаг 4: извлечь файлы из tar/tar.gz

Чтобы извлечь файлы из архивов tar/tar.gz , можно воспользоваться кодом, приведенным ниже. Он использует модуль tarfile и разделяет эти два типа, чтобы применить подходящий режим распаковки:

import tarfile zipfile = 'file.zip' if zipfile.endswith("tar.gz"): tar = tarfile.open(zipfile, "r:gz") elif zipfile.endswith("tar"): tar = tarfile.open(zipfile, "r:") tar.extractall() tar.close()

Примечание: все файлы из архива будут распакованы в текущей для данного скрипта рабочей директории.

Шаг 5: извлечь один файл из архива

Если вам нужно получить только один файл из архива, можно использовать метод zipObject.extract(fileName, ‘temp_py’) . Простой пример:

import zipfile archive = 'file.zip' with zipfile.ZipFile(archive, 'r') as zip_file: zip_file.extract('text1.txt', '.')

В этом примере мы извлечём файл ‘text1.txt’ в текущую рабочую директорию. Если вам нужно извлечь файл в другую директорию, можете изменить второй параметр — ‘.’

Заключение

В этом уроке мы выяснили, как с помощью Python извлечь один или несколько файлов из различных архивов, а также — как вывести список запакованных файлов и получить из них информацию. Мы затронули работу с двумя пакетами: zipfile и tarfile.

Источник

Unzip Gz File Using Python

There are so many compression schemes available for different platforms. This article will focus on extracting .gz, .tar.gz, and .tgz files using Python (we will explain these extensions shortly). We will also cover how to read files from an archive without extracting them into a disk.

Before we do that, however, let’s briefly define gz compression and other related terms.

The .gz, .tar.gz and .tgz

.gz, or GNU Zip, is a primary compression scheme used by UNIX devices. This compression format is officially called gzip.

On the other hand, tape archive (tar) is an archival format used for UNIX-like systems. It is generally used with compression formats like gzip, xz or bzip2.

When tar is used with gzip compression are compiled, we get a “tarball” file format. Tarball files usually come with .tar.gz or .tgz file extensions.

In simple terms, a tar file is an archive containing multiple files put into one, whereas a gz file is a compressed file.

Note: All the code examples used in this post have been tested on Windows and Linux (Debian). That means they should be working across all platforms, even Mac.

Extracting .gz Files

This section discusses extracting single or multiple GZIP files in a folder.

Example 1: Unzipping a single GZIP file

The unzipping task, in this case, happens in two steps – first, open the GZIP file using the gzip package, and second, write the file’s contents into another file using shutil.

The following example shows how to extract a gzipped README markdown file.

Источник

How to uncompress a «.tar.gz» file using python ?

An example of how to extract all the files from a compressed «.tar.gz» file using python:

Uncompress a tar file in python

Let’s consider a compressed file called for example data.tar.gz. In python to uncompress a tar file, a solution is to use the tarfile module:

import tarfile fname = "data.tar.gz" if fname.endswith("tar.gz"): tar = tarfile.open(fname, "r:gz") tar.extractall() tar.close() elif fname.endswith("tar"): tar = tarfile.open(fname, "r:") tar.extractall() tar.close() 

A case study

For a project (that can be found here on Github), I wanted to download a compressed file from an url address and uncompress it on my local machine using python:

Download the compressed file (‘modis_c6_luts.tar.gz’) from the following url address:

import urllib.request url = 'https://atmosphere-imager.gsfc.nasa.gov/sites/default/files/ModAtmo/resources/modis_c6_luts.tar.gz' downloaded_filename = 'modis_c6_luts.tar.gz' urllib.request.urlretrieve(url, downloaded_filename) 
import tarfile fname = 'modis_c6_luts.tar.gz' if fname.endswith("tar.gz"): tar = tarfile.open(fname, "r:gz") tar.extractall() tar.close() 

References

Benjamin

Greetings, I am Ben! I completed my PhD in Atmospheric Science from the University of Lille, France. Subsequently, for 12 years I was employed at NASA as a Research Scientist focusing on Earth remote sensing. Presently, I work with NOAA concentrating on satellite-based Active Fire detection. Python, Machine Learning and Open Science are special areas of interest to me.

Skills

Источник

Читайте также:  How to call a JavaScript function in HTML?
Оцените статью