وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

چگونه یک فایل .gz را با استفاده از پایتون از حالت فشرده خارج کنیم

0 17
زمان لازم برای مطالعه: 3 دقیقه


معرفی

کار با فایل های فشرده یک اتفاق رایج در برنامه نویسی است و از بین انواع مختلف فایل های فشرده، فایل های .gz در دنیای یونیکس و لینوکس بسیار محبوب هستند.

در این بایت، چند راه برای باز کردن فایل .gz با استفاده از پایتون بررسی خواهیم کرد. وارد پایتون می شویم gzip ماژول، محتویات یک فایل .gz را بخوانید و موارد دیگر.

فایل های .gz چیست؟

.gz پسوند فایل برای فایل های Gzip است (GNU zip)، که یک ابزار فشرده سازی و رفع فشرده سازی فایل است که توسط GNU پروژه اغلب در سیستم های یونیکس و لینوکس برای فشرده سازی مواردی مانند فایل های گزارش، پشتیبان گیری از داده ها و غیره استفاده می شود.

در پایتون می توانیم از داخلی استفاده کنیم gzip ماژول خواندن و نوشتن فایل های .gz. این ماژول یک رابط کاربری ساده و آسان برای مدیریت فایل های .gz فراهم می کند.

خواندن محتویات یک فایل .gz

برای خواندن محتویات یک فایل .gz در پایتون، می توانیم از gzip.open() تابع. این فایل .gz را در حالت باینری یا متنی باز می کند، درست مانند پایتون داخلی open() تابع. در اینجا یک مثال ساده آورده شده است:

import gzip

with gzip.open('file.txt.gz', 'rt') as f:
    file_content = f.read()

print(file_content)

در کد بالا، file.txt.gz فایل .gz است که می خواهیم بخوانیم و 'rt' حالتی است که می خواهیم فایل را در آن باز کنیم. r مخفف حالت خواندن و t مخفف حالت متن است. خروجی محتوای فایل .gz خواهد بود.

پیشنهاد می‌کنیم بخوانید:  نحوه بررسی مقادیر NaN در پایتون

استفاده از ماژول gzip پایتون

را gzip ماژول در پایتون فراهم می کند GzipFile کلاسی که در واقع از پایتون مدل شده است File هدف – شی. این کلاس دارای متدها و ویژگی های مشابه با موارد موجود در کلاس است File شی، که کار با فایل های .gz را آسان تر می کند.

در اینجا مثالی از روش استفاده از آن آورده شده است gzip ماژول برای خواندن یک فایل .gz:

import gzip

with gzip.GzipFile('file.txt.gz', 'r') as f:
    file_content = f.read()

print(file_content)

در کد بالا، ما از GzipFile کلاس برای باز کردن فایل .gz. حالت ‘r’ نشان می دهد که ما می خواهیم فایل را برای خواندن باز کنیم. خروجی محتوای فایل .gz خواهد بود.

توجه داشته باشید: در حالی که هر دو gzip.open() و gzip.GzipFile() می توان برای خواندن فایل های .gz استفاده کرد، gzip.open() هنگامی که می خواهید فایل را به صورت متن بخوانید راحت تر است gzip.GzipFile() برای خواندن فایل های باینری بهتر است.

با استفاده از ش ماژول برای Unzipping

را sh ماژول یک رابط فرعی تمام عیار برای پایتون است که به شما امکان می دهد هر برنامه ای را طوری فراخوانی کنید که گویی یک تابع است. برای خارج کردن فایل .gz از حالت فشرده، می توانیم از gunzip فرمان از طریق sh مدول. بیایید ببینیم چگونه این کار را انجام دهیم.

ابتدا باید آن را نصب کنید sh اگر هنوز آن را انجام نداده اید ماژول. می توانید با استفاده از آن نصب کنید pip:

$ pip install sh

پس از نصب، می توانید از آن برای خارج کردن فایل .gz از حالت فشرده استفاده کنید:

from sh import gunzip

gunzip("/path/to/yourfile.gz")

این اسکریپت را از حالت فشرده خارج می کند yourfile.gz فایل در همان دایرکتوری اگر می خواهید دایرکتوری خروجی دیگری را مشخص کنید، می توانید این کار را با ارسال آن به عنوان آرگومان دوم به آن انجام دهید gunzip تابع:

from sh import gunzip

gunzip("/path/to/yourfile.gz", "-c > /path/to/output/yourfile")

با استفاده از ماژول tarfile

را tarfile ماژول خواندن و نوشتن آرشیو tar را ممکن می کند، از جمله مواردی که از فشرده سازی gzip استفاده می کنند. به عنوان مثال:

import tarfile

with tarfile.open("/path/to/yourfile.tar.gz", "r:gz") as tar:
    tar.extractall(path="/path/to/output")

توجه داشته باشید: را tarfile ماژول فقط برای فایل های tar.gz قابل اجرا است. اگر با یک فایل .gz ساده سر و کار دارید، باید از آن استفاده کنید gzip ماژول یا sh ماژول با gunzip فرمان

پیشنهاد می‌کنیم بخوانید:  مقدمه ای بر ماژول سیستم عامل پایتون

نتیجه

در این بایت، روش از حالت فشرده خارج کردن فایل های .gz در پایتون با استفاده از sh ماژول، gzip ماژول، و tarfile مدول. هر روشی مزایا و موارد استفاده خاص خود را دارد، بنابراین بهترین روش را انتخاب کنید که با نیازهای شما مطابقت دارد.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1402-12-30 11:47:04

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید