ทำความรู้จักกับภาษา 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 » 13/01/2017 5:22 pm

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) เปิดดู 335 ครั้ง

การอ่านข้อมูลจากไฟล์
การอ่านข้อมูลจากไฟล์จะใช้ฟังก์ชัน read() (เร็ด)
read.png
read.png (31.73 KiB) เปิดดู 335 ครั้ง

โดย
    - ใช้โหมดการเปิดไฟล์เป็น "r"
    - ในการอ่านข้อมูลจากไฟล์แต่ละครั้งจะต้องทำการเปิดไฟล์ก่อน
    - เมื่อทำการเปิดไฟล์แล้วก็ต้องทำการปิดไฟล์เสมอ
การอ่านข้อมูลทีละบรรทัด
เพื่อนำข้อมูลที่ได้มาทำการประมวลผลต่อ เช่น การคำนวณ หรือเก็บข้อมูลลงฐานข้อมูล โดยจะใช้ฟังก์ชัน readline() เป็นการวนลูปเพื่อช่วยให้แสดงข้อมูลออกมาครบทั้งไฟล์
ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ while loop (ไวล์ ลูป)
while_loop.png
while_loop.png (49.31 KiB) เปิดดู 335 ครั้ง

ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ for loop (ฟอร์ ลูป) ทำงานได้เร็วกว่า while loop
for_loop.png
for_loop.png (51.61 KiB) เปิดดู 335 ครั้ง


ศึกษาข้อมูลมาจาก https://youtu.be/Yix3nenrev0?list=PLLi1ciqQAf8TVFbJpl7XY23lzdKrpxsMM
แก้ไขล่าสุดโดย dawthana เมื่อ 13/01/2017 6:03 pm, แก้ไขไปแล้ว 1 ครั้ง.



Four
PHP Super Member
PHP Super Member
โพสต์: 407
ลงทะเบียนเมื่อ: 08/01/2018 9:55 am

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

โพสต์โดย Four » 25/01/2018 12:23 am

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

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()


ผลรัน

รูปภาพ

รูปภาพ

ภาพประจำตัวสมาชิก
Jom07
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 514
ลงทะเบียนเมื่อ: 08/01/2018 9:56 am

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

โพสต์โดย Jom07 » 25/01/2018 3:18 pm

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

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=Yix3nenrev0&index=27&list=PLLi1ciqQAf8TVFbJpl7XY23lzdKrpxsMM
รูปภาพ

Patcharanan.0399
PHP Hero Member
PHP Hero Member
โพสต์: 114
ลงทะเบียนเมื่อ: 09/04/2018 10:04 am

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

โพสต์โดย Patcharanan.0399 » 21/04/2018 2:58 pm

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

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) เปิดดู 194 ครั้ง

File1.JPG
ข้อมูลที่รับจากคีย์บอร์ด แสดงในไฟล์ที่สร้างขึ้น
File1.JPG (16.49 KiB) เปิดดู 194 ครั้ง



ศึกษาจาก 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 » 04/05/2018 11:03 am

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) เปิดดู 165 ครั้ง


ผลของไฟล์ที่เขียน

Write_file1.png
Write_file1.png (5.54 KiB) เปิดดู 165 ครั้ง


ศึกษาจาก : 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 » 11/08/2018 2:07 pm

ฟังก์ชั่นเกี่ยวกับไฟล์ 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) เปิดดู 66 ครั้ง


Selection_005.png
Selection_005.png (33.69 KiB) เปิดดู 66 ครั้ง


  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 3 และ บุคคลทั่วไป 0 ท่าน