
Pickle در پایتون یکی از ماژول هایی است که می توان از آن برای سریال سازی اشیاء در پایتون استفاده کرد. در این حالت، یک شی که می تواند یک فرهنگ لغت یا یک لیست باشد، به صورت دنباله ای از بایت ها نمایش داده می شود و در یک فایل ذخیره می شود. در بسیاری از برنامه ها و حتی بازی های رایانه ای فایل هایی را مشاهده می کنید که در هنگام نصب روی سیستم در مسیر مشخص شده کپی می شوند. در ادامه این مقاله از سری مقالات رایگان آموزش پایتون در مورد این ماژول و ویژگی های منحصر به فرد آن صحبت خواهیم کرد.
دوره ارائه شده در ویدئو
در ادامه بحث بالا، اگر این فایل ها را با نوت پد ویندوز باز کنید، یک فایل ناخوانا خواهید دید که همان فایل های سریالی است. در حین کدنویسی در پایتون، می توانید اطلاعات را سریالی کرده و در یک فایل خاص بنویسید. این تابع هنگام ساخت برنامه ای استفاده می شود که با آن می توانید داده های حساس را سریال کرده و در صورت نیاز آنها را از حالت سریال خارج کنید.
نحوه استفاده از Pickle در پایتون
نحوه استفاده از Pickle در پایتون بسیار آسان است. همانطور که در وب سایت synopsys گفته شد، این یک ماژول پایتون است که به طور پیش فرض روی سیستم شما نصب می شود و در صورت نیاز باید آن را با کلمه کلیدی import وارد کد خود کنید.
توجه داشته باشید که کار با فایل ها در پایتون بسیار آسان است و یک راه سریع و بدون دردسر برای این کار وجود دارد. به عنوان مثال در برنامه زیر یک دیکشنری ایجاد می شود و با ایجاد فایلی به نام my_pickle این داده ها در آن ذخیره می شود.
تابع dump در ماژول pickle به شما امکان می دهد داده های سریال را در یک فایل ذخیره کنید. پس از ذخیره داده ها می توانید فایل ایجاد شده را در Notepad باز کرده و نتیجه را مشاهده کنید.
import pickle
dict1 = {
"age": 20,
"name": "john",
"job": "engineer"
}
pickle_out = open("dict.pickle", "wb")
pickle.dump(dict1, pickle_out)
pickle_out.close()
نحوه خواندن فایل با Pickle در پایتون
پس از اینکه داده ها را به صورت سریالی ذخیره کردید، باید آن داده ها را در زمان های مختلف فراخوانی کنید. ممکن است لازم باشد داده ها را در شرایط مختلف به روز کنید و آن را در همان فایل بازنویسی کنید. نحوه خواندن یک فایل با Pickle در پایتون آسان است و شما می توانید آن را به راحتی با استفاده از بار انجام دهید.
توجه داشته باشید که این بار برای استفاده از تابع open باید آن را در حالت rb قرار دهید که نشان دهنده خوانده شدن تابع به صورت باینری است.
import pickle
pickle_in = open("dict.pickle", "rb")
example = pickle.load(pickle_in)
print(example) #prints {'age': 20, 'name': 'john', 'job': 'engineer'}
کاربرد مهم ماژول Pickle در پایتون
وقتی برنامه یا برنامه ای را در پایتون توسعه می دهید، مطمئناً فایل های داده و فایل های اضافی برای آنها وجود خواهد داشت. فرض کنید یک سیستم مدیریت دانش آموز طراحی کرده اید که قرار است اطلاعات مورد نظر در یک فایل ذخیره شود. اما در این شرایط ذخیره داده ها به صورت فایل متنی منطقی نیست و بهتر است از قابلیت های سریال سازی این زبان استفاده شود.
سریال سازی قابلیتی است که در سایر زبان های برنامه نویسی مانند سی شارپ و حتی جاوا استفاده می شود. با استفاده از این تابع می توانید داده های فایل را در موقعیت های مختلف deserialize کرده و به روز رسانی مورد نظر را روی آن انجام دهید. در این حالت زمانی که نیاز به ذخیره فایل دارید، تابع dump در Pickle Python این گزینه را در اختیار شما قرار می دهد.
مزایای استفاده از Pickle در پایتون
مزایای استفاده از Pickle در پایتون بسیار زیاد است و شاید مهمترین آنها سهولت استفاده باشد. کار با فایل ها در این حالت به راحتی امکان پذیر است و می توانید داده های مورد نظر را با چند خط کد به صورت سریال در یک فایل قرار دهید.
کد نویسی آسان
شاید سهولت کد نویسی که در چند خط امکان پذیر است به ماژول Pickle محبوبیت زیادی در این زبان برنامه نویسی داده است. در موقعیت های مختلف و برای سریال سازی داده ها قطعا نوشتن کدهای طولانی ضروری است که ماژول Pickel این کار را برای برنامه نویس آسان کرده است.
امنیت
اگر با این ماژول کار کرده اید، باید بدانید که داده های ذخیره شده تقریبا توسط انسان قابل خواندن نیستند. این ناخوانایی امنیت داده خوبی را فراهم می کند که می تواند برای ذخیره داده ها برای بسیاری از برنامه ها استفاده شود.
مشکل استفاده از Pickle در پایتون
در کنار تمام مزایای Pickle در این زبان، بهتر است به مشکل استفاده از Pickle در پایتون نیز توجه کنید. هنگامی که دادهها را از چندین منبع دریافت میکنید، همیشه خطرات امنیتی در حذف آن وجود دارد. بنابراین همیشه توصیه می شود از داده هایی با استفاده از این ماژول استفاده کنید که از امنیت منبع آن مطمئن هستید.
البته این ماژول یک مشکل دیگر هم دارد که باید به آن اشاره کرد. زبان های دیگر به جز پایتون توانایی خواندن داده های ترشی را با استفاده از این ماژول در شرایط مختلف ندارند و این می تواند کار را برای برنامه نویس دشوار کند.
آخرین کلمه
برای استفاده از ماژول پیکسل، کافی است آن را به ابتدای کد اضافه کنید و از آن برای سریال سازی داده ها استفاده کنید. در بسیاری از موارد، استفاده از Pickle در پایتون چندان ایمن نیست. در واقع، شما باید فقط داده هایی را غیرفعال کنید که مطمئن هستید امن هستند و هیچ مشکل امنیتی ندارند. اگر به این موارد دقت کرده باشید، استفاده از Pickle در پایتون یک ویژگی خوب است که در هنگام برنامه نویسی و مدیریت داده ها در این زبان برنامه نویسی به شما کمک می کند. اگر سوال یا مشکلی در مورد استفاده و کاربرد این ماژول دارید، خوشحال می شویم در ادامه این مقاله با ما در میان بگذارید.