از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
ذخیره متن، JSON و CSV در یک فایل در پایتون
سرفصلهای مطلب
ذخیره داده ها در یک فایل یکی از رایج ترین کارهای برنامه نویسی است که ممکن است در زندگی توسعه دهنده خود با آن مواجه شوید.
به طور کلی، برنامه ها مقداری ورودی می گیرند و مقداری خروجی تولید می کنند. موارد متعددی وجود دارد که ما می خواهیم این نتایج را حفظ کنیم. ممکن است متوجه شویم که دادهها را در یک فایل برای پردازش بعدی ذخیره میکنیم – از صفحات وب که مرور میکنیم، دادههای ساده جدولی که برای گزارشها، یادگیری ماشینی و آموزش یا ثبتنام در طول زمان اجرای برنامه استفاده میکنیم – ما متکی هستیم. روی برنامه ها به جای انجام دستی روی فایل ها می نویسند.
پایتون به ما این امکان را می دهد که فایل های مختلف را بدون نیاز به استفاده از کتابخانه های شخص ثالث ذخیره کنیم. در این مقاله، ما به ذخیره رایج ترین فرمت های فایل در پایتون می پردازیم.
باز کردن و بستن یک فایل
باز کردن یک فایل
هنگامی که یک فایل باز می شود می توان به محتویات آن دسترسی داشت و پس از بسته شدن دیگر برای خواندن و نوشتن در دسترس نیست.
باز کردن یک فایل در پایتون ساده است:
my_data_file = open('data.txt', 'w')
هنگام باز کردن یک فایل، به نام فایل نیاز دارید – رشته ای که می تواند یک مسیر نسبی یا مطلق باشد. آرگومان دوم حالت است، که اقداماتی را که میتوانید با فایل باز انجام دهید مشخص میکند.
در اینجا برخی از موارد رایج استفاده می شود:
r
– (حالت پیش فرض) فایل را برای خواندن باز کنیدw
– فایل را برای نوشتن باز کنید، اگر فایل از قبل با داده وجود داشته باشد، محتوا را بازنویسی کنیدx
– یک فایل جدید ایجاد می کند، در صورت وجود ناموفقa
– فایل را برای نوشتن باز کنید و در صورت وجود داده های جدید در انتهای محتویات فایل اضافه کنیدb
– به جای داده های متنی پیش فرض، داده های باینری را در فایل ها بنویسید+
– اجازه دادن به خواندن و نوشتن در یک حالت
فرض کنید می خواستید روی یک فایل بنویسید و سپس آن را بخوانید، حالت شما باید ‘w+’ باشد. اگر میخواهید بدون حذف محتوای قبلی، بنویسید و سپس از روی یک فایل بخوانید، از «a+» استفاده میکنید.
بستن یک فایل
بستن یک فایل در پایتون حتی ساده تر است:
my_data_file.close()
شما به سادگی باید روش بسته را فراخوانی کنید روی شی فایل بستن فایل پس از پایان استفاده از آن بسیار مهم است و دلایل خوبی برای این کار وجود دارد:
- فایل های باز فضای رم را اشغال می کنند
- احتمال خراب شدن داده ها را کاهش می دهد زیرا دیگر در دسترس نیست
- محدودیت فایلهایی وجود دارد که سیستم عامل شما میتواند باز کند
برای اسکریپتهای کوچک، اینها نگرانیهای فوری نیستند و برخی از پیادهسازیهای پایتون در واقع بهطور خودکار فایلها را برای شما میبندند، اما برای برنامههای بزرگ، بستن فایلهای خود را به شانس ندهید و مطمئن شوید که منابع استفادهشده را آزاد میکنید.
استفاده از کلمه کلیدی “با”.
بستن یک فایل را می توان به راحتی فراموش کرد، ما انسان هستیم. خوشبختانه پایتون مکانیزمی برای استفاده از یک فایل و بسته شدن خودکار آن پس از اتمام کار دارد.
برای انجام این کار، ما به سادگی نیاز به استفاده از with
کلمه کلیدی:
with open('data.txt', 'w') as my_data_file:
فایل برای همه کدهایی که پس از استفاده از تورفتگی باز می شود with
کلمه کلیدی، علامت گذاری شده به عنوان # TODO
اظهار نظر. پس از تکمیل بلوک کد، فایل به طور خودکار بسته می شود.
این روش توصیه شده برای باز کردن و نوشتن یک فایل است زیرا برای آزاد کردن منابع لازم نیست آن را به صورت دستی ببندید و یک مکانیسم ایمن برای حفظ ذهن شما ارائه می دهد. روی جنبه های مهم برنامه نویسی
ذخیره یک فایل متنی
اکنون که بهترین راه برای دسترسی به یک فایل را می دانیم، بیایید مستقیماً به نوشتن داده ها بپردازیم.
خوشبختانه، پایتون این را نیز ساده می کند:
with open('do_re_mi.txt', 'w') as f:
f.write('Doe, a deer, a female deer\n')
f.write('Ray, a drop of golden sun\n')
را write()
تابع یک رشته می گیرد و آن محتوا را در جریان فایل قرار می دهد. اگرچه ما آن را ذخیره نمی کنیم، write()
تابع تعداد کاراکترهایی را که وارد کرده است، یعنی طول رشته ورودی را برمی گرداند.
توجه داشته باشید: به گنجاندن کاراکتر خط جدید توجه کنید، \n
. برای نوشتن در خط بعدی در فایل استفاده می شود، در غیر این صورت، تمام متن به صورت یک خط اضافه می شود.
ذخیره چندین خط در یک زمان
با write()
تابع ما می توانیم یک رشته را برداریم و آن را در یک فایل قرار دهیم. اگر بخواهیم چند خط را همزمان بنویسیم چه؟
ما می توانیم استفاده کنیم writelines()
تابعی برای قرار دادن داده ها در یک دنباله (مانند یک لیست یا تاپل) و در یک فایل:
with open('browsers.txt', 'w') as f:
web_browsers = ('Firefox\n', 'Chrome\n', 'Edge\n')
f.writelines(web_browsers)
مانند قبل، اگر بخواهیم داده ها در خطوط جدید ظاهر شوند، کاراکتر newline را در انتهای هر رشته قرار می دهیم.
اگر میخواهید از مرحله وارد کردن دستی کاراکتر خط جدید بعد از هر مورد در لیست صرفنظر کنید، خودکار کردن آن آسان است:
with open('browsers.txt', 'w') as f:
web_browsers = ('Firefox\n', 'Chrome\n', 'Edge\n')
f.writelines("%s\n" % line for line in web_browsers)
توجه داشته باشید: ورودی برای writelines()
باید دنباله ای مسطح از رشته ها یا بایت ها باشد – هیچ عدد، شی یا دنباله تودرتو مانند لیستی در یک لیست مجاز نیست.
اگر علاقه مند به خواندن بیشتر در مورد لیست ها و تاپل ها هستید، ما قبلاً مقاله ای به آنها اختصاص داده ایم – Lists vs Tuples در پایتون.
ذخیره یک فایل CSV
CSV فایل های (مقادیر جدا شده با کاما) معمولاً برای ذخیره داده های جدولی استفاده می شوند. پایتون به دلیل محبوبیتش، روشهای داخلی دارد تا نوشتن فایلهایی از این نوع را آسانتر کند:
import csv
weekdays = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
sales = ('10', '8', '19', '12', '25')
with open('sales.csv', 'w') as csv_file:
csv_writer = csv.writer(csv_file, delimiter=',')
csv_writer.writerow(weekdays)
csv_writer.writerow(sales)
ما ابتدا نیاز داریم import را csv
کتابخانه برای دریافت توابع کمکی خود. ما فایل را همانطور که عادت کرده ایم باز می کنیم اما به جای نوشتن محتوا روی را csv_file
شی، یک شی جدید به نام ایجاد می کنیم csv_writer
.
این شیء در اختیار ما قرار می دهد writerow()
روشی که به ما امکان می دهد تمام داده های ردیف را یکجا در فایل قرار دهیم.
اگر میخواهید درباره استفاده از فایلهای CSV در پایتون با جزئیات بیشتر بدانید، میتوانید در اینجا بیشتر بخوانید: خواندن و نوشتن فایلهای CSV در پایتون.
ذخیره یک فایل JSON
JSON یکی دیگر از فرمت های محبوب برای ذخیره سازی داده ها است، و درست مانند CSV ها، پایتون نوشتن داده های فرهنگ لغت خود را در فایل های JSON ساده کرده است:
import json
my_details = {
'name': 'John Doe',
'age': 29
}
with open('personal.json', 'w') as json_file:
json.dump(my_details, json_file)
ما نیاز داریم import را json
کتابخانه و فایل را باز کنید. برای نوشتن دادهها در فایل، فقط با را فراخوانی میکنیم dump()
تابع، فرهنگ لغت داده ما و شی فایل را به آن می دهد.
اگر میخواهید درباره استفاده از فایلهای JSON در پایتون بیشتر بدانید، میتوانید از این مقاله بیشتر بدانید: خواندن و نوشتن JSON در یک فایل در پایتون.
نتیجه
ذخیره فایل ها می تواند در بسیاری از برنامه هایی که می نویسیم مفید باشد. برای نوشتن یک فایل در پایتون، ابتدا باید فایل را باز کنیم و مطمئن شویم که بعداً آن را می بندیم.
بهتر است از with
کلمه کلیدی، بنابراین فایلها بهطور خودکار بسته میشوند، وقتی نوشتن برای آنها تمام شد.
ما می توانیم استفاده کنیم write()
روشی برای قرار دادن محتویات یک رشته در یک فایل یا استفاده writelines()
اگر دنباله ای از متن برای قرار دادن در فایل داشته باشیم.
برای دادههای CSV و JSON، میتوانیم از توابع ویژهای که پایتون ارائه میکند برای نوشتن دادهها در یک فایل پس از باز شدن فایل استفاده کنیم.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-26 02:19:07