آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

ارسال مجدد کد یکبار مصرف (00:90)
  • 02177010771
  • info@chabokacademy.com
  • اخبار و مقالات
  • علاقمندی ها
آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی
  • صفحه اصلی
  • دوره های آموزشی
  • اخبار و مقالات
  • درباره ما
  • تماس با ما
شروع کنید
0

وبلاگ

آکادمی چابک | مرجع تخصصی جدیدترین دوره‌های آموزشی > اخبار و مقالات > برنامه نویسی > Pickling و Unpickling در پایتون چیست؟ همه چیز درباره ذخیره‌سازی داده‌ها

Pickling و Unpickling در پایتون چیست؟ همه چیز درباره ذخیره‌سازی داده‌ها

اردیبهشت 24, 1404
ارسال شده توسط ادمین آکادمی
برنامه نویسی
Pickling و unpickling در پایتون به چه معنی است

فهرست مطالب این نوشته

Toggle
  • Serialization چیست و چرا در پایتون مهم است؟
  • Pickling و Unpickling در پایتون به چه معنی است؟
  • چطور با ماژول pickle یک آبجکت را ذخیره کنیم؟
  • تفاوت بین Pickling و Unpickling چیست؟
  • تفاوت بین Pickling و JSON در پایتون
  • کاربردهای جالب Pickle را بشناسید!
  • نکاتی که باید همیشه در مورد Pickle بدانید
  • Pickling و Unpickling در پایتون؛ ابزار کاربردی برنامه‌نویسان!
تعداد بازدید: 69
لطفا به این مقاله امتیاز بدهید.

Pickling و Unpickling در پایتون دو روش برای ذخیره‌سازی و بازیابی داده‌ها هستند. با Pickling می‌توانید هر نوع آبجکتی را به فرمت باینری تبدیل کنید و در یک فایل ذخیره کنید. سپس با Unpickling، دقیقا همان آبجکت را (با همان ساختار و مقادیر) دوباره از فایل بخوانید و بازسازی کنید.

در ادامه همراه ما باشید تا بیشتر بررسی کنیم که Pickling و Unpickling در پایتون به چه معنی است.

chabokacademy
دوره‌های آموزشی آکادمی چابک
با تخفیف‌های ویژه آکادمی چابک، یادگیری را شروع کنید!
مشاهده دوره‌ها

Serialization چیست و چرا در پایتون مهم است؟

  • در تعریف ساده: Serialization یعنی تبدیل یک شیء پایتون به فرمی که بتوان آن را ذخیره کرد یا از طریق شبکه فرستاد.

در اینجا ما دقیقا به دنبال همین اتفاق هستیم: ذخیره‌سازی آبجکت در پایتون.

بدون Serialization، شیء شما فقط داخل حافظه موقت برنامه می‌ماند و هیچ راهی برای ذخیره یا انتقال آن وجود ندارد.

پس واضح است که این فرآیند چقدر مهم است، مخصوصا وقتی پروژه‌های بزرگتری را مدیریت می‌کنید.

Pickling و Unpickling در پایتون به چه معنی است؟

حالا Pickling و Unpickling در پایتون یعنی چه؟ Pickling یعنی تبدیل یک آبجکت پایتون (مثل لیست، دیکشنری یا حتی یک مدل یادگیری ماشین) به یک دنباله‌ی بایت‌ها تا بتوانید آن را در یک فایل ذخیره کنید یا از طریق شبکه منتقل کنید. این فرآیند با استفاده از توابع pickle.dump() یا pickle.dumps() انجام می‌شود.

Pickling و Unpickling در پایتون

Unpickling دقیقا برعکس است: گرفتن آن بایت‌ها و بازگرداندنشان به همان آبجکت اصلی که قبل از Pickling داشتید. برای این کار از pickle.load() یا pickle.loads() استفاده می‌کنید. مزیت بزرگش این است که نوع و ساختار آبجکت کاملا حفظ می‌شود، انگار که هیچ وقت حذف یا جابه‌جا نشده بوده است.

این دو فرآیند در کنار هم اجازه می‌دهند که اطلاعات را با خیال راحت بین برنامه‌های مختلف جابه‌جا کنید یا در زمان نیاز دوباره بارگذاری نمایید.

چطور با ماژول pickle یک آبجکت را ذخیره کنیم؟

بیایید با یک مثال واقعی جلو برویم. فرض کنید یک دیکشنری از اطلاعات شخصی دارید:

آموزش لینوکس برای برنامه‌نویسان: بهره‌مندی از امکانات بی‌نظیر لینوکس در توسعه نرم‌افزار
بخوانید

import pickle

person = {“name”: “Alice”, “age”: 30, “gender”: “female”}

with open(“person.pickle”, “wb”) as file:

pickle.dump(person, file)

این کار کار با فایل pickle را نشان می‌دهد: آبجکت person را به فرمت باینری تبدیل می‌کنیم و داخل یک فایل ذخیره می‌کنیم. به همین راحتی!

حالا اگر بخواهیم این داده‌ها را بازیابی کنیم:

with open(“person.pickle”, “rb”) as file:

data = pickle.load(file)

print(data)

و خروجی می‌شود:

{‘name’: ‘Alice’, ‘age’: 30, ‘gender’: ‘female’}

پس عملیات ذخیره و بازیابی داده‌ها در پایتون بسیار ساده ولی قدرتمند است.

تفاوت بین Pickling و Unpickling چیست؟

اگر بخواهیم خیلی شفاف تفاوت بین Pickling و Unpickling در پایتون را بگوییم:

ویژگی Pickling Unpickling
روند تبدیل شیء به bytes تبدیل bytes به شیء اصلی
توابع pickle.dump, pickle.dumps pickle.load, pickle.loads
خروجی فایل یا داده‌ی باینری شیء بازسازی شده
قابلیت‌ها پشتیبانی از اشیاء پیچیده و ارجاعات داخلی بازیابی دقیق ساختار اصلی

 

تفاوت بین Pickling و JSON در پایتون

برای کسانی که با برنامه‌نویسی پایتون آشنایی دارند یک سوال پیش می‌آید: چرا باید از Pickle استفاده کنیم وقتی JSON هم هست؟ بیاید بررسی کنیم:

  • JSON یک فرمت متنی قابل خواندن توسط انسان است و تقریبا با تمام زبان‌های برنامه‌نویسی کار می‌کند.
  • Pickle مخصوص پایتون است، فرمت آن باینری است و می‌تواند اشیاء بسیار پیچیده‌تر (مثلا توابع یا کلاس‌های سفارشی) را سریال‌سازی کند.

بنابراین اگر هدفتان انتقال داده‌ها بین زبان‌های مختلف است، JSON ولی اگر فقط در پایتون کار می‌کنید، Pickle را انتخاب کنید.

کاربردهای جالب Pickle را بشناسید!

شاید با خودتان بگویید: «خب اینا که تئوری بود، در عمل چطور است؟» بگذارید چند مثال جالب واقعی را با هم ببینیم:

  • ذخیره‌ی لیست‌ها: یک لیست از نام‌ها را سریع ذخیره و دوباره بازیابی کنید.
  • آرایه‌های NumPy: به راحتی آرایه‌های سنگین ۱۰x۱۰ یا حتی خیلی بزرگ‌تر را ذخیره کنید.
  • DataFrame‌های Pandas: اگر داده‌های عظیم آماری دارید، Pickle می‌تواند نسبت به CSV سرعت ذخیره و بازیابی را تا ۳۰ برابر بیشتر کند.
  • مدل‌های یادگیری ماشین: پس از آموزش یک مدل (مثلا رگرسیون خطی)، آن را Pickle کنید تا در آینده بدون نیاز به آموزش مجدد استفاده شود.

ذخیره‌سازی آبجکت در پایتون

نکاتی که باید همیشه در مورد Pickle بدانید

کار با Pickle ساده است اما یکسری نکات مهم هم دارد. برای مثال هیچ وقت داده‌های pickled ناشناس را مستقیما بارگذاری نکنید زیرا ممکن است کدی مخرب اجرا شود. یا باید بدانید که Pickle فایل‌هایش را با نسخه‌ی خاصی از پایتون سازگار می‌کند. مراقب باشید فایل‌های Pickled را بین نسخه‌های مختلف پایتون جابه‌جا نکنید مگر با دقت.

اگر نیاز دارید داده‌ها را بین زبان‌های مختلف جابه‌جا کنید یا امنیت بیشتری می‌خواهید، به جای Pickle از فرمت‌هایی مثل JSON، HDF5 یا Apache Thrift استفاده کنید. لازم به ذکر است که همیشه برای فایل‌های Pickle از پسوند .pkl یا .pickle استفاده کنید تا بعدا راحت‌تر آن‌ها را پیدا کنید.

نحوه و اهمیت تست نویسی در برنامه نویسی
بخوانید

Pickling و Unpickling در پایتون؛ ابزار کاربردی برنامه‌نویسان!

در مطلب بالا متوجه شدید که بدون Pickling، ذخیره‌سازی و انتقال اشیاء پایتون تقریبا غیرممکن می‌شود. یادگیری Pickle در پایتون یعنی باز کردن درهای یک دنیا از امکانات ذخیره‌سازی هوشمندانه و سریع.

برای یادگیری عمیق‌تر مباحثی شبیه به Pickling و Unpickling در پایتون ما در آکادمی چابک، یک سری دوره‌های متنوع طراحی کرده‌ایم تا هر شخص علاقه‌مندی بتواند با هر سطحی دانش پایتون‌اش را عمیق‌تر کند. برای اطلاعات بیشتر با ما تماس بگیرید.

منبع:

www.geeksforgeeks.org

قبلی هوش مصنوعی برای کدنویسی پایتون: معرفی بهترین هوش مصنوعی برنامه نویسی
بعدی فتوشاپ برای مبتدی‌ها: از نصب تا اولین طراحی‌تان

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
دسته‌ها
  • آموزش گرافیک کامپیوتری
  • امنیت و شبکه
  • برنامه نویسی
  • پایگاه داده
  • سیستم عامل
  • طراحی وب
  • کسب و کار
  • هوش مصنوعی
برچسب‌ها
MBA آموزش و کاربرد هوش مصنوعی اهداف شغلی بازاریابی محصول کسب و کار اینترنتی
logoacademy
آکادمی چابک با برگزاری دوره‌های جامع و تخصصی در حوزه‌ی نرم‌افزار، تحلیل کسب‌وکار و همچنین مشاوره‌های تخصصی در این حوزه‌ها سعی بر آن دارد تا علاقمندان پس از گذراندن دوره‌های مربوطه بتوانند از دانش و مهارت‌ خود بهترین استفاده را کرده و وارد بازار کار شوند.
 

ارتباط با ما

  • ۰۲۱۷۷۰۱۰۷۷۱
  • info@chabokacademy.com
  • حکیمیه، بلوار بابائیان، ۱۵ متری امام حسین، بن بست شفاعت، پلاک ۱۵، طبقه ۷

دسترسی سریع

  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما
  • خانه
  • دوره ها
  • اخبار و مقالات
  • تماس با ما

نماد‌ها و خبرنامه

۱۴۰۲© کلیه حقوق سایت نزد آکادمی چابک محفوظ است.

  • Afghanistan (+93)
  • Albania (+355)
  • Algeria (+213)
  • American Samoa (+1)
  • Andorra (+376)
  • Angola (+244)
  • Anguilla (+1)
  • Antigua (+1)
  • Argentina (+54)
  • Armenia (+374)
  • Aruba (+297)
  • Australia (+61)
  • Austria (+43)
  • Azerbaijan (+994)
  • Bahrain (+973)
  • Bangladesh (+880)
  • Barbados (+1)
  • Belarus (+375)
  • Belgium (+32)
  • Belize (+501)
  • Benin (+229)
  • Bermuda (+1)
  • Bhutan (+975)
  • Bolivia (+591)
  • Bonaire, Sint Eustatius and Saba (+599)
  • Bosnia and Herzegovina (+387)
  • Botswana (+267)
  • Brazil (+55)
  • British Indian Ocean Territory (+246)
  • British Virgin Islands (+1)
  • Brunei (+673)
  • Bulgaria (+359)
  • Burkina Faso (+226)
  • Burundi (+257)
  • Cambodia (+855)
  • Cameroon (+237)
  • Canada (+1)
  • Cape Verde (+238)
  • Cayman Islands (+1)
  • Central African Republic (+236)
  • Chad (+235)
  • Chile (+56)
  • China (+86)
  • Colombia (+57)
  • Comoros (+269)
  • Cook Islands (+682)
  • Côte d'Ivoire (+225)
  • Costa Rica (+506)
  • Croatia (+385)
  • Cuba (+53)
  • Curaçao (+599)
  • Cyprus (+357)
  • Czech Republic (+420)
  • Democratic Republic of the Congo (+243)
  • Denmark (+45)
  • Djibouti (+253)
  • Dominica (+1)
  • Dominican Republic (+1)
  • Ecuador (+593)
  • Egypt (+20)
  • El Salvador (+503)
  • Equatorial Guinea (+240)
  • Eritrea (+291)
  • Estonia (+372)
  • Ethiopia (+251)
  • Falkland Islands (+500)
  • Faroe Islands (+298)
  • Federated States of Micronesia (+691)
  • Fiji (+679)
  • Finland (+358)
  • France (+33)
  • French Guiana (+594)
  • French Polynesia (+689)
  • Gabon (+241)
  • Georgia (+995)
  • Germany (+49)
  • Ghana (+233)
  • Gibraltar (+350)
  • Greece (+30)
  • Greenland (+299)
  • Grenada (+1)
  • Guadeloupe (+590)
  • Guam (+1)
  • Guatemala (+502)
  • Guernsey (+44)
  • Guinea (+224)
  • Guinea-Bissau (+245)
  • Guyana (+592)
  • Haiti (+509)
  • Honduras (+504)
  • Hong Kong (+852)
  • Hungary (+36)
  • Iceland (+354)
  • India (+91)
  • Indonesia (+62)
  • Iran (+98)
  • Iraq (+964)
  • Ireland (+353)
  • Isle Of Man (+44)
  • Israel (+972)
  • Italy (+39)
  • Jamaica (+1)
  • Japan (+81)
  • Jersey (+44)
  • Jordan (+962)
  • Kazakhstan (+7)
  • Kenya (+254)
  • Kiribati (+686)
  • Kuwait (+965)
  • Kyrgyzstan (+996)
  • Laos (+856)
  • Latvia (+371)
  • Lebanon (+961)
  • Lesotho (+266)
  • Liberia (+231)
  • Libya (+218)
  • Liechtenstein (+423)
  • Lithuania (+370)
  • Luxembourg (+352)
  • Macau (+853)
  • Macedonia (+389)
  • Madagascar (+261)
  • Malawi (+265)
  • Malaysia (+60)
  • Maldives (+960)
  • Mali (+223)
  • Malta (+356)
  • Marshall Islands (+692)
  • Martinique (+596)
  • Mauritania (+222)
  • Mauritius (+230)
  • Mayotte (+262)
  • Mexico (+52)
  • Moldova (+373)
  • Monaco (+377)
  • Mongolia (+976)
  • Montenegro (+382)
  • Montserrat (+1)
  • Morocco (+212)
  • Mozambique (+258)
  • Myanmar (+95)
  • Namibia (+264)
  • Nauru (+674)
  • Nepal (+977)
  • Netherlands (+31)
  • New Caledonia (+687)
  • New Zealand (+64)
  • Nicaragua (+505)
  • Niger (+227)
  • Nigeria (+234)
  • Niue (+683)
  • Norfolk Island (+672)
  • North Korea (+850)
  • Northern Mariana Islands (+1)
  • Norway (+47)
  • Oman (+968)
  • Pakistan (+92)
  • Palau (+680)
  • Palestine (+970)
  • Panama (+507)
  • Papua New Guinea (+675)
  • Paraguay (+595)
  • Peru (+51)
  • Philippines (+63)
  • Poland (+48)
  • Portugal (+351)
  • Puerto Rico (+1)
  • Qatar (+974)
  • Republic of the Congo (+242)
  • Romania (+40)
  • Reunion (+262)
  • Russia (+7)
  • Rwanda (+250)
  • Saint Helena (+290)
  • Saint Kitts and Nevis (+1)
  • Saint Pierre and Miquelon (+508)
  • Saint Vincent and the Grenadines (+1)
  • Samoa (+685)
  • San Marino (+378)
  • Sao Tome and Principe (+239)
  • Saudi Arabia (+966)
  • Senegal (+221)
  • Serbia (+381)
  • Seychelles (+248)
  • Sierra Leone (+232)
  • Singapore (+65)
  • Sint Maarten (+1)
  • Slovakia (+421)
  • Slovenia (+386)
  • Solomon Islands (+677)
  • Somalia (+252)
  • South Africa (+27)
  • South Korea (+82)
  • South Sudan (+211)
  • Spain (+34)
  • Sri Lanka (+94)
  • St. Lucia (+1)
  • Sudan (+249)
  • Suriname (+597)
  • Swaziland (+268)
  • Sweden (+46)
  • Switzerland (+41)
  • Syria (+963)
  • Taiwan (+886)
  • Tajikistan (+992)
  • Tanzania (+255)
  • Thailand (+66)
  • The Bahamas (+1)
  • The Gambia (+220)
  • Timor-Leste (+670)
  • Togo (+228)
  • Tokelau (+690)
  • Tonga (+676)
  • Trinidad and Tobago (+1)
  • Tunisia (+216)
  • Turkey (+90)
  • Turkmenistan (+993)
  • Turks and Caicos Islands (+1)
  • Tuvalu (+688)
  • U.S. Virgin Islands (+1)
  • Uganda (+256)
  • Ukraine (+380)
  • United Arab Emirates (+971)
  • United Kingdom (+44)
  • United States (+1)
  • Uruguay (+598)
  • Uzbekistan (+998)
  • Vanuatu (+678)
  • Venezuela (+58)
  • Vietnam (+84)
  • Wallis and Futuna (+681)
  • Western Sahara (+212)
  • Yemen (+967)
  • Zambia (+260)
  • Zimbabwe (+263)
ورود
با شماره موبایل
آیا هنوز عضو نشده اید؟ اکنون ثبت نام کنید
ثبت نام
قبلا عضو شده اید؟ اکنون وارد شوید
محافظت شده توسط