مدیریت فایلها در پایتون
در این ویدئو مدیریت کردن و کار کردن با فایل ها در پایتون را یاد می گیریم.
مطالب زیر را حتما مطالعه کنید
آشنایی با توابع در پایتون
جریان حول استوانه – بخش سوم
روشن و خاموش کردن PC در کد سیشارپ
راه اندازی Django به همراه Postgresql، Nginx و Gunicorn
آشنایی با حلقه ها در پایتون
آشنایی با رشته در پایتون
مدیریت فایلها در پایتون
اطراف ما پر شده است از فایلهای مختلف که روزانه با آنها سر و کار داریم. حال در این مقاله میخواهیم درباره نحوه کار با فایل در پایتون صحبت کنیم.
در این آموزش قرار است با پایتون ۳.۵ کار کنیم.
باز کردن فایل
اولین قدم برای انجام عملیات روی فایلها، باز کردن فایل است. این کار را میتوانیم با تابع ()open انجام دهیم. ()open درواقع یک object است، که اطلاعات فایل را به ما بر می گرداند. تابع ()open دو آرگومان میپذیرد:
open(filename, mode)
آرگومان اول اسم فایل ما را مشخص میکند؛ که در همان مسیری است که فایل پروژه میباشد. اگر فایل در مسیر پروژه نبود، به جای آن مسیر فایل را میگذاریم.
آرگومان دوم حالتی است که ما میخواهیم فایل خود را باز کنیم. حالتهای مختلف آن در جدول زیر آمده است که با توجه به کاربرد آن در پروژه خود میتوانید از آنها استفاده کنید:
حالت | توضیحات |
r | باز کردن فایل برای خواندن (جریان از اول فایل شروع میشود.) |
+r | باز کردن فایل برای خواندن و نوشتن (جریان از اول فایل شروع میشود.) |
w | پاک کردن فایل یا ایجاد فایل خالی برای نوشتن (جریان از اول فایل شروع میشود.) |
+w | باز کردن فایل برای خواندن و نوشتن. زمانی که فایل وجود نداشته باشد، آن را ایجاد میکند، در غیر این صورت آن را پاک میکند. (جریان از اول فایل شروع میشود.) |
a | باز کردن فایل برای خواندن. زمانی که فایل وجود نداشته باشد، آن را ایجاد میکند. (جریان از آخر فایل شروع میشود.) |
+a | باز کردن فایل برای خواندن و نوشتن. زمانی که فایل وجود نداشته باشد، آن را ایجاد میکند. (جریان از آخر فایل شروع میشود.) |
حالا به سراغ یک مثال میرویم. توصیه میشود که همراه آموزش، یک فایل به صورت آموزشی درست کنید:
Hi this is navid from ZeroToHero.
We are honored to have you here.
Chill out and take a look at our articles.
حال میخواهیم که فایل خود را باز کنیم. برای اینکار آن را در یک متغیر میگذاریم، تا از آن استفاده کنیم:
text_file = open(“zerotohero.txt")
اگر دقت کرده باشید در این مثال حالت (mode) آن را مشخص نکردیم؛ که به صورت پیشفرض r است. اگر شما text_file را نمایش دهید عبارتی به صورت زیر خواهید دید:
# Python 3.5 >>> text_file = open(“zerotohero.txt”) >>> print(text_file) <_io.TextIOWrapper name='zerotohero.txt' mode='r' encoding='UTF-8'>
خواندن فایل
حالا که فایل را باز کردیم، نوبت آن است که محتویات آن را بخوانیم.
با تابع ()read میتوان این کار را انجام داد:
>>> text_file = open(“zerotohero.txt”) >>> text_file.read() 'Hi this is navid from ZeroToHero.\nWe are honored to have you here.\nChill out and take a look at our articles.\n'
در نظر داشته باشید دفعه بعدی که تابع ()read را فراخوانی کنید، به شما رشته خالی بر میگرداند، چون قبل آن یک بار کل فایل را خوانده بود.
برای اینکه یک خط از فایل را بخوانید، میتوانید از تابع ()readline استفاده کنید:
>>> text_file = open(“zerotohero.txt”) >>> text_file.readline() 'Hi this is navid from ZeroToHero.\n' >>> text_file.readline() 'We are honored to have you here.\n' >>> text_file.readline() 'Chill out and take a look at our articles.\n'
برای اینکه جملهها را جدا کنیم و نمایش دهیم، میتوانیم از حلقه استفاده کنیم:
>>> text_file = open(“zerotohero.txt”) >>> for i in text_file: ... print(i) ... Hi this is navid from ZeroToHero. We are honored to have you here. Chill out and take a look at our articles.
نوشتن در فایل
حالا نوبت اضافه کردن به فایل است. شاید شما بخواهید جملهای یا پاراگرافی به فایل خود اضافه کنید. برای این کار از تابع ()write استفاده می کنیم. فقط این را در نظر داشته باشید که موقع باز کردن فایل حالت (mode) آن را طوری تنظیم کنید که قابلیت نوشتن داشته باشید.
>>> text_file = open(“zerotohero.txt”) >>> text_file.write(“\nand don\’t forget to see our brand new videos”)
این دستور به آخر فایل ما عبارت (and don’t forget to see our brand new videos) را اضافه میکند.
بستن فایل
آخرین کاری که باید بعد از کار کردن با فایلها انجام دهید، بستن فایل است. به صورت پیشفرض وقی script به پایان برسد، پایتون فایل را میبندد ولی سربار این وجود دارد که حافظه اشغال میکند.
پس برای این کار از تابع ()close استفاده میکنیم.
>>> text_file = open(“zerotohero.txt”) >>> text_file.close()
بدیهی است که بعد از بستن فایل دیگر نمیتوانیم آن را چاپ کنیم و یا تغییرش دهیم.
کار با فایلها میتواند مقداری در اول کار شما را سردرگم کند. پس سعی کنید برای خودتان مثال بزنید و با فایلهای مختلف کار کنید، تا کار کردن با آن برایتان راحتتر شود.
مطالب زیر را حتما مطالعه کنید
آشنایی با توابع در پایتون
راه اندازی Django به همراه Postgresql، Nginx و Gunicorn
آشنایی با حلقه ها در پایتون
آشنایی با رشته در پایتون
برنامه نویسی چند نخی در پایتون
تولید اعداد Random با Python
4 Comments
Join the discussion and tell us your opinion.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
سلام خسته نباشید آموزش خوبی بود.
برای من دوتا مشکل پیش امده:
1-من همینارو توی آی پایتون اجرا کردم اما وقتی که میخوام حلقه یا شرط بنویسم فقط یک خط اجازه نوشتن به من میده مثلا وقتی داخل آی پایتون یک فایلو باز میکنم و یک حلقه مینویسم و در خط اول میگم که یک مقداری رو توی فایل بنویس تا که اینتر رو میزنم حلقه اجرا میشه و اجازه نمیده دستور دیگه ای رو توی حلقه بنویسم.
2-چرا توی بعضی آموزشا type(file)فایله اما مال من_io.TextIOWrapper تایپشو نوشته.
ممنون میشم اگه پاسخمو بدین.
سلام ممنون از شما
1. زمانی که آخر حلقه و یا شرط دو نقطه بزارین ipython به صورت خودکار تشخیص میده و کد رو اجرا نمیکنه.
2. زمانی که فایل را به فرمت غیر از باینری باز کنید، تایپ ابجکت به صورت io.TextIOWrapper_ و در غیر این صورت io.BufferedReader_ میشه.
سلام
من وقتی این دستور رو چند بار اجرا میکنم فایل text فقط یک خط رو نشون میده:
sdf = open(‘example.txt’, ‘r+’)
sdf.write(‘lksdjflksjdflksdjfklsdjflksdjfklsdjfklsdjflsdf\n’)
sdf.close()
چرا؟
سلام
برای اینکه به آخرِ فایلی که محتویاتی از قبل داخلش هست، اون رو با حالتی باز کنید که جریان از آخر فایل شروع بشه. که در این حالت +a میشه