ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

dawthana
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 604
ลงทะเบียนเมื่อ: 07/12/2016 10:55 am

ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โพสต์ที่ยังไม่ได้อ่าน โดย dawthana »

Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์
ในภาษา python (ไพทอน) สามารถทำการเปิดปิดไฟล์ได้ง่ายๆ โดยฟังก์ชันที่ใช้ในการเปิดปิดไฟล์ คือ open()
รูปแบบของการเปิดไฟล์

โค้ด: เลือกทั้งหมด

file_object = open (file_name [,access_mode][,buffering])
โดย
  • - file_object (ไฟล์_อ๊อบเจค) คือ ชื่อ Object (เมื่อทำการเปิดไฟล์จะได้มาเป็น object)
    - file_name (ไฟล์_เนม) คือ ชื่อไฟล์
    - access_mode (แอคเสจ_โหมด) คือ โหมดในการเปิดไฟล์ (ซึ่งจะอธิบายรายละเอียดไว้ในหน้าถัดไป)
    - buffering (บัฟเฟอร์ริ่ง) ให้มีการใช้งานของ buffer (บัฟเฟอร์)หรือไม่ (เปิดการใช้งานไฟล์แค่บางส่วน)
โหมดการจัดการไฟล์
  • r (อาร์) เป็นการเปิดไฟล์เพื่ออ่านอย่างเดียว
    r+ (อาร์บวก) เป็นการเปิดไฟล์เพื่ออ่านและเขียน
    rb (อาร์บี) เป็นการเปิดไฟล์เพื่ออ่านข้อมูล Binary (ไบนารี่) อย่างเดียว
    rb+ (อาร์บีบวก) เป็นการเปิดไฟล์เพื่ออ่านและเขียนข้อมูล Binary
    w (ดับเบิ้ลยู) เป็นการเปิดไฟล์เพื่อเขียนอย่างเดียว , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
    w+ (ดับเบิ้ลยูบวก) เป็นการเปิดไฟล์เพื่ออ่านและเขียน , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
    wb (ดับเบิ้ลยูบี) เป็นการเปิดไฟล์เพื่อเขียนข้อมูล Binary อย่างเดียว , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
    wb+ (ดับเบิ้ลยูบีบวก) เป็นการเปิดไฟล์เพื่ออ่านและเขียนข้อมูล Binary , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
    a (เอ) เป็นการเปิดไฟล์เพื่ออ่านอย่างเดียว , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่า , Pointer (พ้อยท์เตอร์) อยู่ท้ายต่อท้ายข้อมูล
    a+ (เอบวก) เป็นการเปิดไฟล์เพื่ออ่านและเขียน , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่าแต่เป็นเพียงการเขียนต่อท้าย , Pointer อยู่ท้ายต่อท้ายข้อมูล
    ab (เอบี) เป็นการเปิดไฟล์เพื่อเขียนข้อมูล Binary อย่างเดียว , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่า , Pointer อยู่ท้ายต่อท้ายข้อมูล
    ab+ (เอบีบวก) เป็นการเปิดไฟล์เพื่อเขียนข้อมูล Binary อย่างเดียว , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่าแต่เป็นเพียงการเขียนต่อท้าย , Pointer อยู่ท้ายต่อท้ายข้อมูล
รูปแบบการปิดไฟล์

โค้ด: เลือกทั้งหมด

file_object.close()
โดย
  • - file_object ชื่อ object
    - เมื่อทำการเปิดไฟล์แล้วก็ต้องทำการปิดไฟล์เสมอ
    - ข้อมูลจะถูกบันทึกก็ต่อเมื่อทำการปิดไฟล์
ตัวอย่างการเขียนไฟล์และทำการเปิดปิดไฟล์
เมื่อต้องการจบการทำงาน ให้พิมพ์ esc (อีเอสซี) โดยข้อมูลที่รับค่าจากคีย์บอร์ดเข้าไปจะไปโชว์ที่ไฟล์ write_file.txt (ไรท์_ไฟล์)
openclose.png
openclose.png (52.88 KiB) Viewed 1728 times
การอ่านข้อมูลจากไฟล์
การอ่านข้อมูลจากไฟล์จะใช้ฟังก์ชัน read() (เร็ด)
read.png
read.png (31.73 KiB) Viewed 1728 times
โดย
  • - ใช้โหมดการเปิดไฟล์เป็น "r"
    - ในการอ่านข้อมูลจากไฟล์แต่ละครั้งจะต้องทำการเปิดไฟล์ก่อน
    - เมื่อทำการเปิดไฟล์แล้วก็ต้องทำการปิดไฟล์เสมอ
การอ่านข้อมูลทีละบรรทัด
เพื่อนำข้อมูลที่ได้มาทำการประมวลผลต่อ เช่น การคำนวณ หรือเก็บข้อมูลลงฐานข้อมูล โดยจะใช้ฟังก์ชัน readline() เป็นการวนลูปเพื่อช่วยให้แสดงข้อมูลออกมาครบทั้งไฟล์
ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ while loop (ไวล์ ลูป)
while_loop.png
while_loop.png (49.31 KiB) Viewed 1728 times
ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ for loop (ฟอร์ ลูป) ทำงานได้เร็วกว่า while loop
for_loop.png
for_loop.png (51.61 KiB) Viewed 1728 times
ศึกษาข้อมูลมาจาก https://youtu.be/Yix3nenrev0?list=PLLi1 ... lzdKrpxsMM
แก้ไขล่าสุดโดย dawthana เมื่อ 13/01/2017 6:03 pm, แก้ไขไปแล้ว 1 ครั้ง.
Four
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 813
ลงทะเบียนเมื่อ: 08/01/2018 9:55 am

Re: ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โพสต์ที่ยังไม่ได้อ่าน โดย Four »

โค้ด: เลือกทั้งหมด

n = 1
f = open('test', 'w')
while True:
    print("%d ลำดับการอกจากโปรแกรม" %n)
    data_1 = input("%d ข้อมูลตัวแรก:" %n)
    data_2 = input("%d ข้อมูลตัวสอง:" %n)
    if data_1 == "esc" or data_2 == "esc":
        break
    f.write("%.2d, %s, %s \n" %(n, data_1, data_2))
    n += 1
f.close()
ผลรัน

รูปภาพ

รูปภาพ
I am slow walker, but I never walk back. (Abraham Lincoln)
ภาพประจำตัวสมาชิก
Jom07
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 514
ลงทะเบียนเมื่อ: 08/01/2018 9:56 am

Re: ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โพสต์ที่ยังไม่ได้อ่าน โดย Jom07 »

โค้ด: เลือกทั้งหมด

x = 1
y = open('test', 'w')
while True:
    print("%d ลำดับการอกจากโปรแกรม" %x)
    data_1 = input("%d ข้อมูลตัวแรก:" %x)
    data_2 = input("%d ข้อมูลตัวสอง:" %x)
    if data_1 == "esc" or data_2 == "esc":
        break
    y.write("%.2d, %s, %s \n" %(x, data_1, data_2))
    x += 1
y.close()
ผลรัน

รูปภาพ

ศึกษาข้อมูลจาก :https://www.youtube.com/watch?v=Yix3nen ... lzdKrpxsMM
รูปภาพ
Patcharanan.0399
PHP Hero Member
PHP Hero Member
โพสต์: 114
ลงทะเบียนเมื่อ: 09/04/2018 10:04 am

Re: ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โพสต์ที่ยังไม่ได้อ่าน โดย Patcharanan.0399 »

โค้ด: เลือกทั้งหมด

i = 1
f = open ('write_file', 'w')
while True:
    print ("%d exit/esc" %i)
    data_1 = raw_input ("%d input1 : " %i)
    data_2 = raw_input ("%d input2 : " %i)
    if data_1 == "esc" or data_2 == "esc" :
        break
    f.write ("%.2d, %s, %s \n" %(i, data_1, data_2))
    i += 1
    
f.close
print '\nThank you'
ผลการรัน
File.JPG
File.JPG (17.51 KiB) Viewed 1587 times
ข้อมูลที่รับจากคีย์บอร์ด แสดงในไฟล์ที่สร้างขึ้น
ข้อมูลที่รับจากคีย์บอร์ด แสดงในไฟล์ที่สร้างขึ้น
File1.JPG (16.49 KiB) Viewed 1587 times

ศึกษาจาก https://youtu.be/Yix3nenrev0
rangsan
PHP Hero Member
PHP Hero Member
โพสต์: 199
ลงทะเบียนเมื่อ: 30/04/2018 9:44 am

Re: ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โพสต์ที่ยังไม่ได้อ่าน โดย rangsan »

Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โค้ด: เลือกทั้งหมด

i = 1
f = open("write_file.txt","w")
while True:
    print ("%d If your want to close program please write esc : " %i)
    data_1 = raw_input("%d Input First Data  : " %i)
    data_2 = raw_input("%d Input Second Data : " %i)
    if data_1 == 'esc' or data_2 == 'esc':
        break
    f.write("%.2d,%s,%s \n"%(i,data_1,data_2))
    i+=1
f.close()
ผลการรันโค้ด
Write_file.png
Write_file.png (33.9 KiB) Viewed 1558 times
ผลของไฟล์ที่เขียน
Write_file1.png
Write_file1.png (5.54 KiB) Viewed 1558 times
ศึกษาจาก : youtube.com
It’s never too late to start again.
anuwat somsakul
PHP Full Member
PHP Full Member
โพสต์: 44
ลงทะเบียนเมื่อ: 08/08/2018 9:49 am

Re: ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โพสต์ที่ยังไม่ได้อ่าน โดย anuwat somsakul »

ฟังก์ชั่นเกี่ยวกับไฟล์ Python write file การเขียนไฟล์ เปิดไฟล์ รองรับภาษาไทย

โค้ด: เลือกทั้งหมด

i = 1
f = open('write.txt','w')
while True:
    print("%d สำหรับต้องการออกจากโปรแกรม/esc" %i)
    data_1 = input("%d ป้อนข้อมูลตัวแรก :" %i)
    data_2 = input("%d ป้อนข้อมูลตัวที่สอง :" %i)
    if data_1 == "esc" or data_1 == "esc" :
        break
    f.write("%2d,%s,%s\n"%(i, data_1,data_2))
    i += 1
f.close()

ผลลัพธ์

Selection_006.png
Selection_006.png (24.83 KiB) Viewed 1459 times
Selection_005.png
Selection_005.png (33.69 KiB) Viewed 1459 times
ภาพประจำตัวสมาชิก
jirawoot
PHP VIP Members
PHP VIP Members
โพสต์: 3129
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

Re: ทำความรู้จักกับภาษา python (27) : Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์

โพสต์ที่ยังไม่ได้อ่าน โดย jirawoot »

โค้ด: เลือกทั้งหมด

i=1
f=open("test.txt",'w')
while True:
    print('%d โปรแกรม/esc'%i)
    data_1 = input("%d ข้อมูลตัวแรก :"%i)
    data_2 = input('%d ข้อมูลตัวถัดไป :'%i)
    if data_1=="esc" or data_2=='esc':
        break
    f.write('%.2d, %s, %s \n'%(i, data_1,data_2))
    i +=1

f.close()
ผลลัพธ์
Selection_011.png
Selection_011.png (7.96 KiB) Viewed 519 times
Selection_013.png
Selection_013.png (4.65 KiB) Viewed 519 times

โค้ด: เลือกทั้งหมด

f = open('test.txt', 'r')
r = f.read()
print(r)
f.close()
ผลลัพธ์
Selection_014.png
Selection_014.png (7.74 KiB) Viewed 519 times

โค้ด: เลือกทั้งหมด

f = open('test.txt')
while True:
    data_file = f.readline()
    if not data_file:
        break
    print(data_file)
f.close()
print('Done!')
ผลลัพธ์
Selection_015.png
Selection_015.png (8.38 KiB) Viewed 519 times

โค้ด: เลือกทั้งหมด

f = open('test.txt')
for data_file in f:
    print(data_file)
f.close()
print('Done!')
Selection_017.png
Selection_017.png (9.51 KiB) Viewed 519 times
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: Google Adsense [Bot] และบุคลทั่วไป 43