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

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

وبلاگ

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

نحوه ذخیره دیکشنری در فایل در پایتون: آموزش ذخیره و خواندن دیکشنری

فروردین 20, 1404
ارسال شده توسط ادمین آکادمی
برنامه نویسی
دیکشنری در پایتون

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

Toggle
  • ساخت دیکشنری در پایتون
  • متدهای دیکشنری در پایتون را بشناسید
  • ذخیره دیکشنری در فایل در پایتون با pickle چگونه انجام می‎شود؟
    • ذخیره دیکشنری در فایل با pickle
  • ذخیره دیکشنری در فایل با json چگونه انجام می‌شود؟
  • ذخیره دیکشنری در فایل CSV چگونه انجام می‌شود؟
  • ذخیره دیکشنری به صورت متن ساده
  • مقایسه روش‌های ذخیره دیکشنری در پایتون
تعداد بازدید: 71
لطفا به این مقاله امتیاز بدهید.

دیکشنری یکی از پرکاربردترین ساختارهای داده در پایتون است که برای ذخیره داده‌ها به‌صورت کلید-مقدار استفاده می‌شود. اما وقتی بخواهیم این داده‌ها را در فایل ذخیره کنیم تا بعداً دوباره از آن‌ها استفاده کنیم، چه روش‌هایی برای ذخیره دیکشنری در فایل در پایتون در اختیار داریم؟ در این مطلب چندین روش ذخیره و خواندن دیکشنری در فایل در پایتون را بررسی می‌کنیم. از ماژول pickle گرفته تا json، csv و ذخیره به‌صورت متن ساده.

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

ساخت دیکشنری در پایتون

قبل از ذخیره دیکشنری در فایل در پایتون، باید یک دیکشنری بسازیم. روش‌های مختلفی برای گرفتن ورودی دیکشنری در پایتون وجود دارد. برای مثال می‌توان یک دیکشنری را مستقیماً تعریف کرد:

person = {“name”: “Ali”, “age”: 25, “city”: “Tehran”}

یا می‌توان از ورودی کاربر برای ساخت دیکشنری در پایتون استفاده کرد:

person = {}

person[“name”] = input(“Enter name: “)

person[“age”] = int(input(“Enter age: “))

person[“city”] = input(“Enter city: “)

print(person)

همچنین، می‌توان یک لیست از تاپل‌ها را به دیکشنری تبدیل کرد:

data = [(“name”, “Sara”), (“age”, 22), (“city”, “Mashhad”)]

person = dict(data)

print(person)

نکته: تبدیل لیست به دیکشنری در پایتون از طریق تابع dict() و استفاده از ساختار داده‌ای مناسب مانند لیست‌های توپل انجام می‌شود. همچنین می‌توان از zip() برای ترکیب دو لیست به‌عنوان کلید و مقدار استفاده کرد.
حال که با روش‌های ساخت دیکشنری آشنا شدیم، به بررسی روش‌های ذخیره آن در فایل می‌پردازیم.

ذخیره دیکشنری در فایل در پایتون

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

قبل از اینکه سراغ روش‌های ذخیره دیکشنری در فایل در پایتون برویم، بهتر است کمی بیشتر با متدهای دیکشنری در پایتون آشنا شویم. وقتی می‌خواهیم دیکشنری را در یک فایل ذخیره کنیم، احتمال دارد که بخواهیم فقط کلیدها یا مقدارهای خاصی را ذخیره کنیم.

مثلاً شاید نیازی به ذخیره تمام اطلاعات یک دیکشنری نداشته باشیم. متدهای keys() و values() کمک می‌کنند که بهتر داده‌های مورد نیاز را فیلتر کنیم.

متدهای دیکشنری در پایتون شامل موارد زیر هستند:

  • keys() برای دریافت کلیدها
  • values() برای دریافت مقادیر
  • items() برای دریافت زوج‌های کلید-مقدار
  • get() برای دریافت مقدار یک کلید خاص
  • update() برای اضافه یا تغییر مقدارها
  • pop() برای حذف یک کلید خاص
چگونه کدنویسی را رایگان یاد بگیریم؟ معرفی بهترین منابع و تکنیک‌ها
بخوانید

ذخیره دیکشنری در فایل در پایتون با pickle چگونه انجام می‎شود؟

ذخیره دیکشنری در فایل در پایتون با pickle ویژگی‌های متعددی دارد که شامل:

  • مناسب برای سریالایز کردن اشیاء پایتون
  • پشتیبانی از ساختارهای پیچیده داده

البته یک عیبی که دارد، غیرقابل خواندن بودن‌اش برای انسان است. (فایل‌های باینری)

ذخیره دیکشنری در فایل با pickle

برای ذخیره دیکشنری در فایل در پایتون با pickle می‌توانید از دستور زیر استفاده کنید:

import pickle

person = {“name”: “Ali”, “age”: 25, “city”: “Tehran”}

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

pickle.dump(person, file)

خواندن دیکشنری از فایل با pickle نیز به روش زیر انجام می‌شود:

import pickle

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

loaded_person = pickle.load(file)

print(loaded_person)

نکته: فایل‌های pickle را نمی‌توان مستقیماً خواند، چون اطلاعات را به‌صورت باینری ذخیره می‌کنند.

متدهای دیکشنری در پایتون

ذخیره دیکشنری در فایل با json چگونه انجام می‌شود؟

از ویژگی‌های ذخیره دیکشنری در فایل در پایتون به صورت json باید: قابل استفاده بودن در تبادل داده‌ها (APIها و وب‌سرویس‌ها) و مناسب بودن برای ذخیره داده‌های ساختاریافته را نام برد.

ذخیره دیکشنری در فایل json به وسیله دستورات زیر انجام می‌شود:

import json

person = {“name”: “Ali”, “age”: 25, “city”: “Tehran”}

with open(“person.json”, “w”) as file:

json.dump(person, file)

خواندن دیکشنری از فایل json نیز به شرح زیر صورت می‌گیرد:

import json

with open(“person.json”, “r”) as file:

loaded_person = json.load(file)

print(loaded_person)

نکته: json فقط از نوع‌های داده‌ای ساده پشتیبانی می‌کند و برای ذخیره اشیای پیچیده‌تر باید از json.dumps() و json.loads() استفاده کرد.

ذخیره دیکشنری در فایل CSV چگونه انجام می‌شود؟

توسعه‌دهندگان از روش ذخیره دیکشنری در فایل CSV به دلایل مختلفی استفاده می‌کنند. مناسب بودن برای داده‌های جدولی یکی از این دلایل است و همچنین چون قابلیت خواندن و پردازش در اکسل را دارد، در میان توسعه‌دهندگان زیاد استفاده می‌شود.

محدودیتی که ذخیره دیکشنری در فایل CSV دارد این است که به صورت محدود از داده‌های تو در تو پشتیبانی می‌کند.

دقت کنید که اگر دیکشنری شامل لیست یا دیکشنری‌های تو در تو باشد، باید مقدارها را به فرمت قابل ذخیره تبدیل کنیم.

برای ذخیره دیکشنری در فایل CSV می‌‌توانید کدی شبیه به کد زیر اجرایی کنید:

import csv

person = {“name”: “Ali”, “age”: 25, “city”: “Tehran”}

with open(“person.csv”, “w”, newline=””) as file:

writer = csv.DictWriter(file, fieldnames=person.keys())

writer.writeheader()

writer.writerow(person)

برای خواندن دیکشنری از فایل CSV نیز باید دستور زیر را وارد کنید:

import csv

with open(“person.csv”, “r”) as file:

reader = csv.DictReader(file)

for row in reader:

print(row)

ذخیره دیکشنری به صورت متن ساده

در این قسمت، روش‌های ذخیره دیکشنری در فایل در پایتون به صورت متن ساده را بررسی می‌کنیم.

چگونه یک سیستم آنالیز محتوای ویدیویی با استفاده از OpenCV و Python بسازیم؟
بخوانید

۱. استفاده از json.dumps()

import json

person = {“name”: “Ali”, “age”: 25, “city”: “Tehran”}

with open(“person.txt”, “w”) as file:

file.write(json.dumps(person))

۲. استفاده از حلقه دستی

person = {“name”: “Ali”, “age”: 25, “city”: “Tehran”}

with open(“person.txt”, “w”) as file:

for key, value in person.items():

file.write(f”{key}: {value}\n”)

۳. استفاده از str()

person = {“name”: “Ali”, “age”: 25, “city”: “Tehran”}

with open(“person.txt”, “w”) as file:

file.write(str(person))

مقایسه روش‌های ذخیره دیکشنری در پایتون

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

روش ذخیره‌سازی فرمت خروجی خوانایی برای انسان پشتیبانی از ساختارهای پیچیده امنیت
pickle باینری ❌ ✅ ❌
json متن ✅ ❌ (فقط نوع‌های ساده) ✅
csv متن ✅ ❌ (فقط داده‌های جدولی) ✅
متن ساده متن ✅/❌ ❌ ✅

 

از کاربردهای دیکشنری در پایتون می‌توانیم به ذخیره داده‌های ساختاریافته، نگهداری تنظیمات برنامه، شمارش عناصر با استفاده از collections.Counter، پردازش داده‌های JSON و ایجاد نگاشت‌های کلید-مقدار در الگوریتم‌های مختلف اشاره کنیم.

نتیجه‌گیری

در این آموزش، روش‌های مختلف ذخیره دیکشنری در فایل در پایتون را بررسی کردیم. انتخاب روش مناسب به نیاز شما بستگی دارد. pickle برای کسانی است که امنیت و سرعت می‌خواهند. اگر خوانایی داده و سازگاری با سایر سیستم‌ها مهم است، json پیشنهاد می‌شود و همچنین برای داده‌های جدولی، csv و برای ذخیره ساده، متن معمولی را امتحان کنید.

آکادمی چابک دوره‌های مدرن و ساختاریافته‌ای در آموزش پایتون و روش‌های ذخیره‌سازی دیکشنری ارائه می‌کند که برای هر برنامه‌نویسی مناسب می‌باشد. برای کسب اطلاعات با کارشناسان ما تماس بگیرید.

منبع:

pynative.com

قبلی چگونه از ابزارهای GitOps برای مدیریت زیرساخت‌های ابری استفاده کنیم؟
بعدی چگونه با استفاده از پایتون پروژه‌های واقعی بسازیم؟

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

جستجو برای:
دسته‌ها
  • آموزش گرافیک کامپیوتری
  • امنیت و شبکه
  • برنامه نویسی
  • پایگاه داده
  • سیستم عامل
  • طراحی وب
  • کسب و کار
  • هوش مصنوعی
برچسب‌ها
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)
ورود
با شماره موبایل
آیا هنوز عضو نشده اید؟ اکنون ثبت نام کنید
ثبت نام
قبلا عضو شده اید؟ اکنون وارد شوید
محافظت شده توسط