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

 

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

 

این آموزش به طور مختصر برخی از انواع فرمت هایی را که پایتون قادر به انجام آنها است توضیح می دهد. پس از معرفی مختصر قالب های فایل، نحوه باز کردن، خواندن و نوشتن یک فایل متنی در پایتون 3 را بررسی خواهیم کرد.

 

پس از پایان این آموزش، می توانید هر فایل متنی را در پایتون مدیریت کنید.

 


 

مرحله 1 - ایجاد یک فایل متنی در پایتون

قبل از شروع به کار در پایتون ، باید مطمئن شویم که یک فایل برای کار داریم. برای انجام این کار، ما یک ویرایشگر متن را باز می کنیم و یک فایل txt جدید ایجاد می کنیم، بگذارید آن را days.txt بنامیم.

 

در فایل جدید ، چند خط متن وارد کنید. در این مثال ، اجازه دهید روزهای هفته را لیست کنیم:

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

 

در مرحله بعد ، فایل خود را ذخیره کرده و مطمئن شوید که می دانید کجا آن را قرار داده اید. در مثال ما ، کاربر sammy ، فایل را در اینجا ذخیره کرد: /users/sammy/days.txt. این در مراحل بعدی ، جایی که ما فایل را در پایتون باز می کنیم ، بسیار مهم خواهد بود.

 

اکنون که یک فایل txt برای پردازش داریم ، می توانیم کد خود را شروع کنیم!

 


 

مرحله 2 - باز کردن یک فایل در پایتون

قبل از اینکه بتوانیم برنامه خود را بنویسیم، باید یک فایل برنامه نویسی پایتون ایجاد کنیم، بنابراین فایل file.py را با ویرایشگر متن خود ایجاد کنید. برای سهولت کار ، آن را در همان پوشه فایل days.txt ذخیره کنید:/users/sammy/.

 

برای باز کردن یک فایل در پایتون، ابتدا به راهی نیاز داریم که فایل را بر روی دیسک با متغیری در پایتون مرتبط کنیم. به این فرایند باز شدن یک فایل گفته می شود. ما ابتدا به پایتون می گوییم فایل کجاست. مکان فایل شما اغلب به عنوان path فایل نامیده می شود. برای اینکه پایتون فایل شما را باز کند، به path نیاز دارد. مسیر دسترسی به فایل days.txt این است: /users/sammy/days.txt. در پایتون، ما یک متغیر رشته ای برای ذخیره این اطلاعات ایجاد می کنیم. در اسکریپت files.py خود، متغیر path را ایجاد کرده و متغیر را در مسیر days.txt تنظیم می کنیم.

path = '/users/sammy/days.txt'

 

سپس از تابع open() پایتون برای باز کردن فایل days.txt استفاده می کنیم. تابع open() به عنوان اولین آرگومان، مسیر فایل را نیاز دارد. این تابع همچنین بسیاری از پارامترهای دیگر را امکان پذیر می کند. با این حال، مهمترین پارامتر Mode است. Mode یک رشته اختیاری است که حالت باز شدن فایل را مشخص می کند. حالت انتخابی شما بستگی به آنچه می خواهید با فایل انجام دهید دارد. در اینجا برخی از گزینه های حالت ما آمده است:

 

  • 'r' - خواندن فایل
  • 'w' - نوشتن فایل
  • 'x' - ایجاد کردن و نوشتن فایل جدید
  • 'a' - اضافه کردن محتوا به فایل
  • '+r' - برای خواندن و نوشتن

 

در این مثال، ما فقط می خواهیم از فایل بخوانیم، بنابراین از حالت 'r' استفاده خواهیم کرد. ما از تابع open () برای بازکردن فایل days.txt و اختصاص آن به متغیر days_file استفاده خواهیم کرد.

days_file = open(path,'r')

 

پس از باز کردن پرونده ، می توانیم از آن بخوانیم ، که در مرحله بعدی این کار را انجام می دهیم.

 


 

مرحله 3 - خواندن یک فایل در پایتون

از آنجا که پرونده ما باز شده است ، اکنون می توانیم آن را از طریق متغیری که به آن اختصاص داده ایم دستکاری کنیم (یعنی از آن بخوانیم). پایتون سه عملیات مرتبط برای خواندن اطلاعات از یک فایل ارائه می دهد. ما نحوه استفاده از هر سه عملیات را به عنوان مثال نشان می دهیم که می توانید برای درک نحوه عملکرد آنها تلاش کنید.

 

اولین عملیات read () کل محتویات فایل را به صورت یک رشته باز می گرداند.

days_file.read()

# OUTPUT
'Monday\nTuesday\nWednesday\nThursday\nFriday\nSaturday\nSunday\n'

 

عملیات دوم readline () خط بعدی فایل را برمی گرداند و متن را به کاراکتر جدید خط بعدی باز می گرداند. به بیان ساده تر ، این عملیات یک فایل را خط به خط می خواند.

days_file.readline()

# OUTPUT
'Monday\n'

 

بنابراین ، هنگامی که یک خط را با readline می خوانید، به خط بعدی منتقل می شود. بنابراین اگر بخواهید دوباره این فانکشن را صدا بزنید، همانطور که در تصویر نشان داده شده است ، خط بعدی در فایل را برمی گرداند.

days_file.readline()

# OUTPUT
'Tuesday\n'

 

آخرین عملیات، readlines() لیستی از خطوط موجود در فایل را برمی گرداند، جایی که هر مورد از لیست نشان دهنده یک خط واحد است.

days_file.readlines()

# OUTPUT
['Monday\n', 'Tuesday\n', 'Wednesday\n', 'Thursday\n', 'Friday\n', 'Saturday\n', 'Sunday\n']

 

هنگام خواندن از روی فایلها باید توجه داشته باشید، هنگامی که یک فایل با استفاده از یکی از عملیات خواندن خوانده شد، دیگر قابل خواندن نیست. به عنوان مثال ، اگر می خواهید ابتدا days_file.read () و سپس days_file.readlines () را اجرا کنید ، عملیات دوم یک رشته خالی را باز می گرداند. بنابراین ، هر زمان که مایل به خواندن از یک فایل هستید، ابتدا باید یک متغیر فایل جدید را باز کنید. اکنون که از یک فایل خواندیم ، بیایید نحوه نوشتن در یک فایل جدید را بیاموزیم.

 


 

مرحله 4 - نوشتن یک فایل در پایتون

در این مرحله، ما قصد داریم یک فایل جدید بنویسیم که شامل عنوان Days of Week و روزهای هفته است. ابتدا بیایید متغیر title خود را ایجاد کنیم.

title = 'Days of the Week\n'

 

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

path = '/users/sammy/days.txt'
days_file = open(path,'r')
days = days_file.read()

 

اکنون که متغیرهایی برای title و days of the week داریم، می توانیم نوشتن در فایل جدید خود را شروع کنیم. ابتدا باید محل فایل را مشخص کنیم. مجدداً از دایرکتوری/users/sammy/استفاده خواهیم کرد. ما باید فایل جدیدی را که می خواهیم ایجاد کنیم مشخص کنیم. بنابراین ، مسیر ما در واقع /users/sammy/new_days.txt خواهد بود. ما اطلاعات موقعیت مکانی خود را در متغیر new_path ارائه می دهیم. سپس فایل جدید خود را در حالت نوشتن باز می کنیم، با استفاده از تابع open () با حالت 'w' مشخص شده است.

new_path = '/users/sammy/new_days.txt'
new_days = open(new_path,'w')

 

نکته قابل توجه این است که اگر new_days.txt قبل از باز کردن فایل قبلاً وجود داشت، محتویات قدیمی آن از بین می رفت، بنابراین هنگام استفاده از حالت 'w' مراقب باشید.

 

هنگامی که فایل جدید ما باز می شود، می توانیم داده ها را با استفاده از عملیات نوشتن، write() در فایل قرار دهیم. عملیات نوشتن یک پارامتر واحد، که باید یک رشته باشد، می گیرد و آن رشته را روی فایل می نویسد. اگر می خواهید یک خط جدید در پرونده شروع کنید، باید صراحتا کاراکتر خط جدید n\ را ارائه دهید. ابتدا عنوان پرونده را می نویسیم و روزهای هفته را به دنبال آن می نویسیم. بیایید برخی از بیانیه های چاپ شده از آنچه را که می نویسیم، اضافه کنیم، که اغلب تمرین خوبی برای ردیابی پیشرفت اسکریپت های شما است.

new_days.write(title)
print(title)

new_days.write(days)
print(days)

 

در نهایت ، هر زمان که یک فایل را به پایان رساندیم ، باید مطمئن شویم که آن را ببندیم. ما این را در آخرین مرحله خود نشان می دهیم.

 


 

بستن یک فایل مطمئن می شود که اتصال بین فایل روی دیسک و متغیر فایل به پایان رسیده است. بستن فایلها همچنین باعث می شود برنامه های دیگر بتوانند به آنها دسترسی داشته باشند و اطلاعات شما را ایمن نگه می دارد. بنابراین، همیشه مطمئن شوید که پرونده های خود را بسته اید. اکنون ، اجازه دهید همه پرونده های خود را با استفاده از تابع close() ببندیم.

days_file.close()
new_days.close()

ما اکنون پردازش فایل ها را در پایتون به پایان رسانده ایم و می توانیم به جستجوی کد خود ادامه دهیم.

 


 

مرحله 6 - بررسی کد ما

قبل از اجرای کد ، مطمئن شوید که همه چیز خوب به نظر می رسد. محصول نهایی باید چیزی شبیه به این باشد:

path = '/users/sammy/days.txt'
days_file = open(path,'r')
days = days_file.read()


new_path = '/users/sammy/new_days.txt'
new_days = open(new_path,'w')

title = 'Days of the Week\n'
new_days.write(title)
print(title)

new_days.write(days)
print(days)

days_file.close()
new_days.close()

 

پس از ذخیره کد ، ترمینال را باز کرده و اسکریپت پایتون خود را اجرا کنید ، مانند این:

python files.py

 

خروجی ما باید به این شکل باشد:

Days of the Week

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

 

اکنون ، بیایید با بازکردن فایل جدید (new_days.txt) کد خود را به طور کامل بررسی کنیم. اگر همه چیز خوب پیش رفت ، وقتی فایل جدید خود را باز می کنیم ، باید به این شکل باشد:

Days of the Week
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

اگر فایل شما یکسان یا مشابه به نظر می رسد - شما این آموزش را با موفقیت تکمیل کرده اید!



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

رایگان

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

دوره آموزش Multi Threading در پایتون
دوره آموزش Multi Threading در پایتون
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش دیتابیس Neo4j
دوره آموزش دیتابیس Neo4j
تکمیل ضبط
امیرحسین بیگدلو
دوره آموزش عبارات منظم (regex) در پایتون
دوره آموزش عبارات منظم (regex) در پایتون
تکمیل ضبط
امیرحسین بیگدلو



ارسال نظر


حسن

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

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

ارسال نظر



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

10 ماه قبل

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

HADI

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

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

ارسال نظر



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

1 سال قبل

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

موسوی

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

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

ارسال نظر



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

1 سال قبل

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

مهدی

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

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

ارسال نظر



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

1 سال قبل

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

وحید

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

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

ارسال نظر



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

2 سال قبل

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

مونگارد