خواندن محتویات فایل

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 24, 2020

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

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

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

نکته:این همه محتویات فایل "filename.txt" را چاپ می کند. برای خواندن فقط یک مقدار مشخصی از یک فایل، می توانید یک عدد را به عنوان یک استدلال برای تابع خواندن ارائه کنید. این مقدار تعداد بایت هایی را که باید خوانده شوند، تعیین می کند. شما می توانید برای خواندن بخش های بیشتر از یک فایل تابع read را به مقدار و تعداد نیاز صدا زنید. تابع read بدون هیچ آرگومانی تمام محتویات فایل را خواهد خواند.

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

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

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

خروجی:

>>>
Re-reading

Finished
>>>

برای بازیابی هر خط در یک فایل، می توانید از روش readlines برای بازگشت یک لیست که در آن هر عنصر یک خط در فایل است، استفاده کنید. مثلا:

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

خروجی:

>>>
['Line 1 text \n', 'Line 2 text \n', 'Line 3 text']
>>>

شما می توانید از یک حلقه برای تکرار از طریق خطوط در فایل استفاده کنید:

file = open("filename.txt", "r")

for line in file:
    print(line)

file.close()

خروجی:

>>>
Line 1 text

Line 2 text

Line 3 text
>>>

نکته:در خروجی، خطوط با خط خالی جدا می شوند، به عنوان تابع چاپ به طور خودکار یک خط جدید را در انتهای خروجی آن اضافه می کند.

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
14دیدگاه
  • امیررضا
    1 year, 4 months ago

    خیلی ممنون از شما مهندس عزیز که همچین محتوای تمیز و خوبی اماده میکنید
    مشکلی که من داشتم این بود که من در پروژه ای که دارم که پروژه ای UI هست میخوام اطلاعاتی رو از کاربر بگیرم اون رو در فایل txt ذخیره کنم هر یک از اطلاعات رو در یک خط قرار بدم مثلا نام در خط اول نام خانوادگی در خط دوم ،و هر زمان خواستم اون اطلاعات رو ببینم خط به خط برام نمایش بده
    برای این که بتونم بر حسب سطر ادیت و رید کنم باید از چه متدی استفاده کنم

    • علی بیگدلی
      1 year, 4 months ago

      پیشنهاد می کنم که از database استفاده کنی و مخصوصا sqlite برای کارای سبک
      روشی که داری میری استاندارد نیست

  • kasra kianara
    1 year, 7 months ago

    سلام
    میشه لطفا بگید چرا این ارور رو نشون میده؟
    Traceback (most recent call last):
    File "G:\python\test 28(read file).py", line 1, in <module>
    file = open('g:\test.txt',"r")
    OSError: [Errno 22] Invalid argument: 'g:\test.txt'

    • علی بیگدلی
      1 year, 7 months ago

      آدرس دهی های ویندوز و لینوکس متفاوتن
      سرچ کن پیدا می کنی
      how to open files in windows with python with full directory

  • Amir Abbas Rajabi
    1 year, 9 months ago

    file = open("Amir.txt" , "r")
    cont = file.read()
    print(cont)
    file.close()
    سلام وقتی این کدو مینویسم نه ارور میده و نه چیزی از محتویاته فایلو نشون میده ممنون مسشم بگید چیکار کنم

    • علی بیگدلی
      1 year, 9 months ago

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

  • Najmeh
    2 years ago

    سلام آقای مهندس
    وقت شما بخیر
    سوالی داشتم.
    برای خواندن فایل به چند طریقی که گفتیدهیچ کدام اجرا نمیشه و ارور میده.
    فایل متن و فایل پایتون هردو روی دسک تاپ ذخیره کردم.
    نمیدونم مشکل کجاست.
    ممنون میشم راهنمایی بفرمایید.
    Traceback (most recent call last):
    File "C:/Users/mypc/Desktop/t.py", line 1, in <module>
    file = open("test1.txt", "r")
    FileNotFoundError: [Errno 2] No such file or directory: 'test1.txt'

    • علی بیگدلی
      2 years ago

      بررسی کنین که در قسمت windows explorer گزینه show file extensions رو فعال کنین اون وقت مطمئن میشید که اسم فایل رو درست میدید.
      خیلی زیاد پیش میاد که افراد فایل می سازن ودو تا پسوند بهش میدن test.txt,.txt که این مورد بیشتر سر ندانسته های کار با ویندوز میشه نه خود برنامه نویسی
      پیشنهاد می کنم فایل رو با پایتون ایجاد و بعد از ایجاد بخونین و می بینید که درست خواهد بود

    • محمد
      1 year, 9 months ago

      منم همین مشکل رودارم ولی حل نشد وهمین اروری که خانم نجمه گفتن دارم وتایپش هم درسته علت دیگه ای نداره ؟

    • علی بیگدلی
      1 year, 9 months ago

      پاسخم همونه که به ایشون دادم فقط بررسی کنین

  • Hannane
    2 years, 7 months ago

    سلام من قسمت آخر یعنی lon و lat رو متوجه نشدم . یک مرجع مناسب برای مطالعه ش میتونید پیشنهاد بدید.

    • علی بیگدلی
      2 years, 7 months ago

      latitude longitude مرجع خاصی برای مطالعه نیاز نداره بلکه علایم اختصاری مختصات جغرافیایی هستن و هر روز با انواع اپلیکیشن هایی که استفاده می کنید داره استفاده میشه

  • Mahdi Vafaei
    2 years, 8 months ago

    file = open("D:\hello.docx","r")
    cont = file.read()
    print(cont)
    file.close()
    سلام
    من هرچی کد بالا رو انجام میدم ارور
    Traceback (most recent call last):
    File "D:/Programing/Pyton/Training/test.py", line 2, in <module>
    cont = file.read()
    File "C:\Users\Mahdi\AppData\Local\Programs\Python\Python36\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
    UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 637: character maps to <undefined>
    میده لطفا راهنمایی کنید

    • علی بیگدلی
      2 years, 8 months ago

      کدک فایلی که دارید می خونید با default خود read متفاوته کافیه آپشن
      encode="utf8"
      رو بهش اضافه کنین