دوره ویژه مقدماتی پایتون – Telegram
دوره ویژه مقدماتی پایتون
436 subscribers
248 photos
4 videos
250 links
Download Telegram
✍️ خواندن فایل ها

محتویات یک فایل که در mode متن باز شده است را می توان با استفاده از متد read خواند.

file = open("filename.txt", "r")
cont = file.read()
print(cont)
file.close()

📌این دستور ، همه ی محتویات فایل "filename.txt" را چاپ می کند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ١٠٠:
ترتیب کد زیر را به صورتی انتخاب کنید که کد را باز کنید تا یک فایل باز شود، مطالب آن را بخوانید، آنها را چاپ کنید، و سپس فایل را ببندید.

1.file = open("test.txt")
2.print(cont)
3.cont = file.read()
4.file close()

1️⃣: 1,4,3,2
️0%(0)
2️⃣: 2,1,4,3
️0%(0)
3️⃣: 1,3,2,4
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(47)

👥: 47شرکت در نظر سنجی
خواندن فایل ها - (قسمت دوم)

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

file = open("filename.txt", "r")
print(file.read(16))
print(file.read(4))
print(file.read(4))
print(file.read())
file.close()

📌درست مثل زمانی که هیچ ورودی ای نمی دهیم، ورودی منفی باعث می شود که کل متن را برگرداند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ١٠١:چند کاراکتر در هر خطی که توسط این کد چاپ می شود، اگر یک کاراکتر یک بایت باشد؟

file = open("filename.txt", "r")
for i in range(21):
print(file.read(4))
file.close()

1️⃣: 2
️0%(0)
2️⃣: 21
️|2%(1)
3️⃣: 4
️|||||||||||||||||||||||||||||||||||||||||||||||||98%(44)
4️⃣: 10
️0%(0)

👥: 45شرکت در نظر سنجی
✍️خواندن فایل ها - (قسمت سوم)

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

file = open("filename.txt", "r")
file.read()
print("Re-reading")
print(file.read())
print("Finished")
file.close()

Result:
>>>
Re-reading

Finished
>>>

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ١٠٢:جای خالی را، به صورتی که یک فایل را بازکند و آن را بخواند، با عبارت مناسب پر کنید.
file =.......("filename.txt", "r")
str = file..........()
print(len(str))
file.close()

1️⃣: open, read
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(42)
2️⃣: write, open
️0%(0)
3️⃣: read, open
️0%(0)

👥: 42شرکت در نظر سنجی
خواندن فایل ها - (قسمت چهارم)

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

file = open("filename.txt", "r")
print(file.readlines())
file.close()

خروجی:
['line 1 text \n', 'line 2 text \n', 'line 3 text']

💡همچنین می توانید برای این کار از حلقه ی for استفاده کنید:
file = open("filename.txt", "r")

for line in file:
print(line)

file.close()

خروجی :
line 1 text

line 2 text

line 3 text

📌در خروجی، خطوط با خط های خالی از هم جدا میشوند. همان طور که تابع print به صورت اتوماتیک یک خط به انتهای خروجی خود اضافه می کند.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
⁉️ اگر فایل test,txt دارای 7 خط باشد، کد زیر چه چیزی را باز می گرداند؟
len(open("test.txt").readlines())

1️⃣: 7
️|||||||||||||||||||||||||||||||||||||||||||||||||98%(41)
2️⃣: 1
️0%(0)
3️⃣: 0
️|2%(1)
4️⃣: error
️0%(0)

👥: 42شرکت در نظر سنجی
✍️نوشتن فایل ها

برای نوشتن در فایل ها می توانید از متد write استفاده کنید، عبارات به صورت رشته ای در فایل نوشته می شود.

file = open("newfile.txt", "w")
file.write("This has been written to a file")
file.close()

file = open("newfile.txt", "r")
print(file.read())
file.close()

خروجی :
>>>
This has been written to a file
>>>

حالت "w" یک فایل ایجاد می کند، به شرطی که قبلا آن فایل وجود نداشته باشد.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست١٠٣:کدام خط باعث نوشتن عبارت "Hello world" در فایل می شود؟

1️⃣: file.write("Hello world!")
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(42)
2️⃣: write(file, "Hello world!")
️0%(0)
3️⃣: write("Hello world!", file)
️0%(0)

👥: 42شرکت در نظر سنجی
✍️نوشتن فایل ها - (قسمت دوم)

هنگامی که یک فایل در حالت نوشتن باز می شود، محتوای موجود در فایل حذف می شود.

file = open("newfile.txt", "r")
print("Reading initial contents")
print(file.read())
print("Finished")
file.close()

file = open("newfile.txt", "w")
file.write("Some new text")
file.close()

file = open("newfile.txt", "r")
print("Reading new contents")
print(file.read())
print("Finished")
file.close()

خروجی :
>>>
Reading initial contents
some initial text
Finished
Reading new contents
Some new text
Finished
>>>
همانطور که می بینید محتوای فایل رونویسی شده است.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ١٠۴:چه اتفاقی می افتد اگر شما یک فایل را برای نوشتن بازکنید و سپس آن را ببندید؟

1️⃣: یک خط خالی به فایل اضافه می شود
️0%(0)
2️⃣: هیچ چیزی تغییر نمی کند
️0%(0)
3️⃣: محتویات فایل حذف می شود.
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(40)

👥: 40شرکت در نظر سنجی
✍️نوشتن فایل ها - (قسمت سوم)

در متد Write تعداد بایت های نوشته شده در یک فایل، برگردانده می شود.

msg = "Hello world!"
file = open("newfile.txt", "w")
amount_written = file.write(msg)
print(amount_written)
file.close()

خروجی :
>>>
12
>>>

💡در مثال تعداد بایت های "Hello world" شمرده شده و درخروجی چاپ شده است.

📌اگر بخواهید چیزی غیر از رشته در فایل بنویسید باید اول آن را تبدیل به رشته کنید.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ١٠۵:در کدام از کد های زیر خروجی به ما طول رشته را می دهد؟

1️⃣: file.write(msg) == True
️0%(0)
2️⃣: file.write(msg) == len(msg)
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(39)
3️⃣: file.write(msg) == msg
️0%(0)

👥: 39شرکت در نظر سنجی
✍️کار با فایل ها

این روش برای جلوگیری از هدر دادن منابع خوب است، برای اینکه اطمینان حاصل کنیم که فایل ها همیشه پس از استفاده از آنها بسته شده اند. یکی از راه های انجام این کار استفاده از "try" و "finally " استفاده کنید.

try:
f = open("filename.txt")
print(f.read())
finally:
f.close()

📌این کار تضمین می کند که فایل همیشه بسته است، حتی اگر یک خطا رخ دهد.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست ١٠۶:آیا تابع() close در این کد صدا زده می شود؟

try:
f = open("filename.txt")
print(f.read())
print(1 / 0)
finally:
f.close()

1️⃣: بله
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(39)
2️⃣: خیر
️0%(0)

👥: 39شرکت در نظر سنجی
✍️کار با فایل ها - (قسمت دوم)

روش دیگر برای انجام این کار، استفاده از عبارت "With" است. این روش یک متغیر موقت ایجاد می کند (که اغلب f نامیده می شود).

with open("filename.txt") as f:
print(f.read())

📌این فایل به طور خودکار در انتهای جمله بسته می شود، حتی اگر استثنا در آن رخ دهد.

بعد مطالعه متن فوق به سوال زیر لطفا پاسخ بدهید:

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
تست١٠٧:جای خالی را با عبارت مناسب پرکنید.
....... open("test.txt")....... f:
  print(f. .........())

1️⃣: as, with,write
️|3%(1)
2️⃣: as, with, read
️0%(0)
3️⃣: with, as, read
️||||||||||||||||||||||||||||||||||||||||||||||||97%(38)

👥: 39شرکت در نظر سنجی
⛔️ بخش استثنائات و فایل ها به پایان رسید، می توانید برای ارزیابی خود، به سوالات زیر پاسخ دهید.

🗂 مرکز آموزش پایتون

🆔 : @pythonchallenge
کدام عدد در کد زیر چاپ نمی شود؟
try :
print(1)
print(20/0)
print(2)
except ZeroDivisionError:
print(3)
finally:
print(4)

1️⃣: 4
️0%(0)
2️⃣: 2
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(38)
3️⃣: 3
️0%(0)

👥: 38شرکت در نظر سنجی
فایل زیر را در mode باینری بنویسید.
open("test.txt", "w ... ")

1️⃣: ++
️0%(0)
2️⃣: b
️||||||||||||||||||||||||||||||||||||||||||||||||||100%(37)
3️⃣: w
️0%(0)

👥: 37شرکت در نظر سنجی