در این ویدیو نحوه کار با فایل های پایتون را یاد میگیرید. خواندن و نوشتن فایل ها یکی از متداول ترین عملیات هایی است که در پایتون انجام خواهید داد. پایتون از توابع مختلفی برای کار با فایل ها استفاده میکند، مثلا تابع open برای باز کردن فایل استفاده میشود. تابع open یکی از توابع داخلی پایتون است و نیازی به import کردن آن نیست.

هر فایل به عنوان دنباله ای از بایت ها شناخته میشود که برای ذخیره داده استفاده می شود. به دلیل شی گرا بودن پایتون، هر فایل در پایتون به عنوان یک آبجکت File شناخته می شود. ماژول های مختلفی مانند os, shutil, pathlib در پایتون برای کار با فایل ها وجود دارد اما در این آموزش ما فقط با توابع داخلی پایتون کار خواهیم کرد.

 

# باز کردن فایل در پایتون

باز فایل در پایتون عملیاتی بسیار ساده است. با استفاده از تابع open میتوانید یک فایل را باز کرده و محتویات آن را مشاهده کنید و یا داخل آن چیزی بنویسید. برای کار با تابع open پایتون باید به شکل زیر کار کنید:

f = open('file_name', 'mode')

تابع open به دو آرگومان نیاز دارد. آرگومان اول نام و مسیر فایلی است که میخواهید با آن کار کنید و آرگومان دوم حالتی که میخواهید با آن فایل کار کنید است. دقت کنید که اگر فایلی که در تابع open استفاده میکنید وجود نداشته باشد، تابع open آن فایل را برای شما ایجاد خواهد کرد. تابع open بعد از باز کردن فایل، آن را در متغیر ذخیره خواهد کرد و شما میتوانید با استفاده از آن متغیر عملیات های مختلفی به روی آن فایل اجرا کنید.

باید دقت کنید که باز کردن یک فایل منابع سیستم شما را اشغال میکند و بعد از اینکه کارتان با فایل تمام شد، باید با تابع close آن فایل را ببندید، مانند کد زیر:

f.close()

البته روش بهتری برای کار با فایل ها وجود دارد. شما میتوانید از کلمه کلیدی with در کنار تابع open استفاده کنید تا به صورت اتوماتیک فایل برای شما بسته شود. پیشنهاد میشود که به شکل زیر با تابع open کار کنید:

with open('file_name', 'mode') as f:
    # some operations

در حالت بالا، شما فایل را به شکل context manager باز کردید و دیگر نیازی به صدا زدن تابع close ندارید.

 

# خواندن فایل در پایتون

برای خواندن محتویات یک فایل در پایتون باید از تابع read استفاده کنید. به کد زیر دقت کنید:

with open('a.txt', 'r') as f:
	contents = f.read()

print(contents)

در کد بالا، ابتدا یک فایل به نام a.txt را با حالت r باز کرده ایم. حالت r به این معنی است که میخواهیم اطلاعات فایل را بخوانیم. سپس فایل را در متغیر f ذخیره کردیم. در نهایت با استفاده از تابع read تمام محتویاتی که داخل فایل وجود داشته را دریافت کردیم و در متغیر contents ذخیره کردیم. در خط آخر هم محتویات را در خروجی نمایش دادیم. اگر کد بالا را اجرا کنید، محتویات فایل برای شما نمایش داده خواهد شد:

Hello..!

 

# نوشتن فایل در پایتون

برای نوشتن داخل فایل باید از تابع write استفاده کنید و همچنین فایل را در حالت w باز کنید. حالت w به این معنی است که میخواهیم داخل فایل چیزی بنویسیم. به کد زیر دقت کنید:

with open('a.txt', 'w') as f:
	f.write('New content..!')

در کد بالا، ابتدا فایل را در حالت w باز کرده و سپس با استفاده از تابع write محتویات جدید را داخل فایل ذخیره کرده ایم. اگر کد بالا را چند بار اجرا کنید متوجه خواهید شد که محتویات جدید فایل هر بار جایگزین محتویات قبلی خواهد شد. به این دلیل حالت w است که تمام اطلاعات قبلی را پاک کرده و محتویات جدید را داخل فایل اضافه میکند. اگر میخواهید محتویات قبلی حذف نشوند و محتویات جدید به فایل اضافه شوند، باید فایل را در حالت a باز کنید. حالت a به معنی append است که برای الحاق محتویات جدید استفاده میشود. به کد زیر دقت کنید:

with open('a.txt', 'a') as f:
	f.write('New content..!\n')

کد بالا، محتویات را به فایل اضافه میکند، بدون حذف محتویات قبلی.



0

Intro

10:38

رایگان

1

Variable

12:30

رایگان

2

String

19:22

رایگان

3

List

8:46

رایگان

4

While

9:6

رایگان

5

If

8:37

رایگان

6

For

6:12

رایگان

7

range

4:17

رایگان

8

break, continue, pass

9:15

رایگان

9

Function

12:32

رایگان

10

List methods

12:11

رایگان

11

Tuple

8:29

رایگان

12

Set

7:47

رایگان

13

Dictionary

9:19

رایگان

14

Module

10:40

رایگان

15

fstring

5:35

رایگان

16

format

7:34

رایگان

17

File

17:14

رایگان

18

Scope

6:25

رایگان

19

OOP

12:15

رایگان

20

Method

20:19

رایگان

21

class/instance variable

14:7

رایگان

22

class/static method

13:25

رایگان

23

Inheritance

17:6

رایگان

24

Special methods

9:50

رایگان

25

Access points

11:12

رایگان

26

property

6:54

رایگان

27

Exceptions

21:17

رایگان

28

Standard library

12:51

رایگان

29

Docstring

10:49

رایگان

30

Virtualenv

11:2

رایگان

دوره های پیشنهادی

دوره آموزش تست نویسی در پایتون
دوره آموزش تست نویسی در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش طراحی پایگاه داده(database)
دوره آموزش طراحی پایگاه داده(database)
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش ساخت Forum با فلسک
دوره آموزش ساخت Forum با فلسک
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


علیرضا ریحانی

4 ماه قبل پاسخ به نظر

سلام بعد از دیدن این دوره میشه رفت سراغ فرم وورک جنگو؟

ارسال نظر



امیرحسین بیگدلو

4 ماه قبل

سلام
بله، میتونید بعد دیدن این دوره برید سراغ جنگو

حسن

1 سال قبل پاسخ به نظر

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

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
بهتر هست که از یک دیتابیس سبک مثل sqlite استفاده کنید یا حداقل اطلاعات رو داخل فایل json ذخیره کنید. یا حتی میتونید از دیتابیس‌های خیلی سبک مثل pickleDB استفاده کنید.
ذخیره اطلاعات در فایل txt کار رو خیلی براتون سخت میکنه

HADI

1 سال قبل پاسخ به نظر

ممنون از دوره های عالیتون
متاسفانه من نتونستم دوره دوم پروژه محوره پایتون رو پیدا کنم که تو ویدئو ازش نام بردید

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
دوره دوم پروژه محور پایتون با دوره وب اسکرپینگ ترکیب شده.

موسوی

1 سال قبل پاسخ به نظر

سلام من یک برنامه نوشتم که توش یه اسمی رو وارد میکنی و اون اسم رو برات ذخیره می کنه این برنامه شمار و هم تو نوشتم ولی وقتی برنامه اجرا مییشه تا چند ثانیه سیستم هنگ می کنه بعد مینویسه خطایProcess finished with exit code -1073740791 (0xC0000409)

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
احتمالا مشکل از سیستم عاملتون هستش

مهدی

1 سال قبل پاسخ به نظر

با سلام و خسته نباشید از آموزشهای جالبتون
یه سوال من وقتی از مثال شما در برنامه استفاده میکنم همون فایل متنی رو مینویسم ولی توی f.tell نتیجه با مال شما فرق میکنه و مقدار آخر هر سطر رو مینویسه نه جایی که تا اونجا خونده شده. میشه راهنمایی کنید

ارسال نظر



امیرحسین بیگدلو

1 سال قبل

سلام
نمیدونم، لابد یه جایی رو اشتباه کردی دیگه

وحید

3 سال قبل پاسخ به نظر

چطور باید چک کنم که یک فایلی وجود داره یا نه؟

ارسال نظر



امیرحسین بیگدلو

3 سال قبل

سلام
برای اینکار باید از ماژول os استفاده کنید.
از داخل ماژول os متد exists رو صدا بزنید.
مثلا: os.path.exists(file_path)
در ضمن در رابطه با ماژول os هم میتونید در لینک زیر یک ویدیو کامل ببینید:
https://www.mongard.ir/one_part/58/python-os-module/

مونگارد