โดย 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 ชื่อ object
- เมื่อทำการเปิดไฟล์แล้วก็ต้องทำการปิดไฟล์เสมอ
- ข้อมูลจะถูกบันทึกก็ต่อเมื่อทำการปิดไฟล์
ตัวอย่างการเขียนไฟล์และทำการเปิดปิดไฟล์
เมื่อต้องการจบการทำงาน ให้พิมพ์ esc (อีเอสซี) โดยข้อมูลที่รับค่าจากคีย์บอร์ดเข้าไปจะไปโชว์ที่ไฟล์ write_file.txt (ไรท์_ไฟล์)
- openclose.png (52.88 KiB) Viewed 1738 times
การอ่านข้อมูลจากไฟล์
การอ่านข้อมูลจากไฟล์จะใช้ฟังก์ชัน read() (เร็ด)
- read.png (31.73 KiB) Viewed 1738 times
โดย
- - ใช้โหมดการเปิดไฟล์เป็น "r"
- ในการอ่านข้อมูลจากไฟล์แต่ละครั้งจะต้องทำการเปิดไฟล์ก่อน
- เมื่อทำการเปิดไฟล์แล้วก็ต้องทำการปิดไฟล์เสมอ
การอ่านข้อมูลทีละบรรทัด
เพื่อนำข้อมูลที่ได้มาทำการประมวลผลต่อ เช่น การคำนวณ หรือเก็บข้อมูลลงฐานข้อมูล โดยจะใช้ฟังก์ชัน readline() เป็นการวนลูปเพื่อช่วยให้แสดงข้อมูลออกมาครบทั้งไฟล์
ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ while loop (ไวล์ ลูป)
- while_loop.png (49.31 KiB) Viewed 1738 times
ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ for loop (ฟอร์ ลูป) ทำงานได้เร็วกว่า while loop
- for_loop.png (51.61 KiB) Viewed 1738 times
ศึกษาข้อมูลมาจาก
https://youtu.be/Yix3nenrev0?list=PLLi1 ... lzdKrpxsMM
[b]Opening and Closing Files (โอเพ่น แอนด์ โคซิ่ง ไฟล์) การเขียนไฟล์และการเปิดปิดไฟล์[/b]
ในภาษา [url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/83-python.html]python (ไพทอน)[/url] สามารถทำการเปิดปิดไฟล์ได้ง่ายๆ โดย[url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/83-python/2471-the-anonymous-functions-.html]ฟังก์ชัน[/url]ที่ใช้ในการเปิดปิดไฟล์ คือ open()
[b]รูปแบบของการเปิดไฟล์[/b]
[code]file_object = open (file_name [,access_mode][,buffering])[/code]
โดย
[list]- file_object (ไฟล์_อ๊อบเจค) คือ ชื่อ Object (เมื่อทำการเปิดไฟล์จะได้มาเป็น object)
- file_name (ไฟล์_เนม) คือ ชื่อไฟล์
- access_mode (แอคเสจ_โหมด) คือ โหมดในการเปิดไฟล์ (ซึ่งจะอธิบายรายละเอียดไว้ในหน้าถัดไป)
- buffering (บัฟเฟอร์ริ่ง) ให้มีการใช้งานของ [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2061-buffer-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html?bb_limitstart=100]buffer (บัฟเฟอร์)[/url]หรือไม่ (เปิดการใช้งานไฟล์แค่บางส่วน)[/list]
[b]โหมดการจัดการไฟล์[/b]
[list][b]r (อาร์)[/b] เป็นการเปิดไฟล์เพื่ออ่านอย่างเดียว
[b]r+ (อาร์บวก)[/b] เป็นการเปิดไฟล์เพื่ออ่านและเขียน
[b]rb (อาร์บี)[/b] เป็นการเปิดไฟล์เพื่ออ่านข้อมูล Binary (ไบนารี่) อย่างเดียว
[b]rb+ (อาร์บีบวก)[/b] เป็นการเปิดไฟล์เพื่ออ่านและเขียนข้อมูล Binary
[b]w (ดับเบิ้ลยู) [/b] เป็นการเปิดไฟล์เพื่อเขียนอย่างเดียว , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
[b]w+ (ดับเบิ้ลยูบวก)[/b] เป็นการเปิดไฟล์เพื่ออ่านและเขียน , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
[b]wb (ดับเบิ้ลยูบี)[/b] เป็นการเปิดไฟล์เพื่อเขียนข้อมูล Binary อย่างเดียว , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
[b]wb+ (ดับเบิ้ลยูบีบวก)[/b] เป็นการเปิดไฟล์เพื่ออ่านและเขียนข้อมูล Binary , เป็นการสร้างใหม่หากมีไฟล์อยู่แล้วจะทับไฟล์เก่า
[b]a (เอ) [/b] เป็นการเปิดไฟล์เพื่ออ่านอย่างเดียว , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่า , Pointer (พ้อยท์เตอร์) อยู่ท้ายต่อท้ายข้อมูล
[b]a+ (เอบวก)[/b] เป็นการเปิดไฟล์เพื่ออ่านและเขียน , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่าแต่เป็นเพียงการเขียนต่อท้าย , Pointer อยู่ท้ายต่อท้ายข้อมูล
[b]ab (เอบี)[/b] เป็นการเปิดไฟล์เพื่อเขียนข้อมูล Binary อย่างเดียว , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่า , Pointer อยู่ท้ายต่อท้ายข้อมูล
[b]ab+ (เอบีบวก)[/b] เป็นการเปิดไฟล์เพื่อเขียนข้อมูล Binary อย่างเดียว , เป็นการสร้างไฟล์ใหม่หากยังไม่มีไฟล์ , ไม่มีการทับไฟล์เก่าแต่เป็นเพียงการเขียนต่อท้าย , Pointer อยู่ท้ายต่อท้ายข้อมูล[/list]
[b]รูปแบบการปิดไฟล์[/b]
[code]file_object.close()[/code]
โดย
[list]- file_object ชื่อ object
- เมื่อทำการเปิดไฟล์แล้วก็ต้องทำการปิดไฟล์เสมอ
- ข้อมูลจะถูกบันทึกก็ต่อเมื่อทำการปิดไฟล์[/list]
[b]ตัวอย่างการเขียนไฟล์และทำการเปิดปิดไฟล์[/b]
เมื่อต้องการจบการทำงาน ให้พิมพ์ esc (อีเอสซี) โดยข้อมูลที่รับค่าจากคีย์บอร์ดเข้าไปจะไปโชว์ที่ไฟล์ write_file.txt (ไรท์_ไฟล์)
[attachment=3]openclose.png[/attachment]
[b]การอ่านข้อมูลจากไฟล์[/b]
การอ่านข้อมูลจากไฟล์จะใช้ฟังก์ชัน read() (เร็ด)
[attachment=2]read.png[/attachment]
โดย
[list]- ใช้โหมดการเปิดไฟล์เป็น "r"
- ในการอ่านข้อมูลจากไฟล์แต่ละครั้งจะต้องทำการเปิดไฟล์ก่อน
- เมื่อทำการเปิดไฟล์แล้วก็ต้องทำการปิดไฟล์เสมอ[/list]
[b]การอ่านข้อมูลทีละบรรทัด[/b]
เพื่อนำข้อมูลที่ได้มาทำการประมวลผลต่อ เช่น การคำนวณ หรือเก็บข้อมูลลงฐานข้อมูล โดยจะใช้ฟังก์ชัน readline() เป็นการวนลูปเพื่อช่วยให้แสดงข้อมูลออกมาครบทั้งไฟล์
[b]ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ while loop (ไวล์ ลูป)[/b]
[attachment=1]while_loop.png[/attachment]
[b]ตัวอย่างการการอ่านข้อมูลจากไฟล์ทีละบรรทัดโดยใช้ for loop (ฟอร์ ลูป) [/b]ทำงานได้เร็วกว่า while loop
[attachment=0]for_loop.png[/attachment]
ศึกษาข้อมูลมาจาก [url]https://youtu.be/Yix3nenrev0?list=PLLi1ciqQAf8TVFbJpl7XY23lzdKrpxsMM[/url]