از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه یک فایل .gz را با استفاده از پایتون از حالت فشرده خارج کنیم
سرفصلهای مطلب
معرفی
کار با فایل های فشرده یک اتفاق رایج در برنامه نویسی است و از بین انواع مختلف فایل های فشرده، فایل های .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 خواهد بود.
استفاده از ماژول 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