วันจันทร์ที่ 24 ตุลาคม พ.ศ. 2559

การ read และ write .txt file ใน python pt.1

        จากสิ่งที่ SPN ได้บอกในคลาสว่าต้องการ ให้เกม xo นั้น สามารถ save และ load game เป็น ไฟล์ .txt ได้ ก็เลยลองไปหาข้อมูลการ save และ การ write ไฟล์ text ด้วย python

https://docs.python.org/3/tutorial/inputoutput.html

ลิ้งค์ดังกล่าว ที่แปะ ไว้ เป็นลิ้งค์จากทางเว็บของ Python โดยตรง ซึ่งได้อธิบายไว้ได้ละเอียดมากกกก โดยทางผมก็อ่านแล้วยังไม่เห็นภาพเลย เปิด tab ใหม่แล้วเปิด youtube search หา tutorial ซึ่งก็ได้พบ กับ channel นึง ชื่อว่า investary ที่ได้อธิบายละเอียดมาก

โดยผมจะแปะลิ้งค์ไว้ สำหรับคนที่ต้องการข้อมูล

Reading text file with python.

Writing text file with python.

การอ่านไฟล์ text โดย Python
         จากที่ได้ดูในคลิปของ investary ผมก็ลองทำตามเขาไป จนได้เห็นภาพ โดย code ที่ได้เขียนขึ้นจะมีหน้าตาดังนี้

ไฟล์ Python

ไฟล์ text


จากโค้ดด้านบน ก็จะมีคำสั่งที่เกี่ยวกับการ read text file โดยมีดังนี้

text_file = open(read_file.txt","r") ==> จะเป็นการเปิดไฟล์ text โดย open(ชื่อไฟล์,โหมด) โหมดในที่นี้ก็คือ เหมือนกับว่าต้องการเปิดมาทำอะไร r ก็น่าจะมาจาก read หรือ อ่านนั้นเอง

text_file.read(1) และ text_file.read(5) ==> จะเป็นการอ่านไฟล์ โดยใส่ size เข้าไป อ้างอิงจาก
website ของ Python เอง โดยเมื่อ กดรัน จะได้ออกมาหน้าตาแบบนี้

ซึ่ง จะเห็นได้ว่า บรรทัดแรกจะเขียนว่า Line 1 เมื่อเรียกใช้ text_file.read(1) จะอ่าน 1 ตัว และ text_file.read(5) จะอ่านอีก 5 ตัวถัดไป คำถามต่อไปที่ขึ้นมาในหัวของผมก็คือ จำนวนตัวนี้รวม เว้นวรรคด้วยหรือเปล่า เพราะว่า บรรทัด Line 1 นั้นมีการเคาะเว้นวรรค เลยทำการแก้ไข ให้มันอ่าน ตัว 1 แล้วอ่าน 4 ตัว ผลที่ได้คือ


มันนับว่าเป็นตัวอักษรด้วย ซึ่งก็จบไปกับคำสั่งนี้

text_file.close () จะเป็นคำสั่งไว้ใช้ในการ ปิดไฟล์ text ซึ่งในส่วนนี้ investary ผู้สอนในยูทูป ได้บอกว่าคุณควรจะมีการปิด ไฟล์ทุกครั้งหลังจากที่ใช้งานเสร็จ หรือ ก็คือ open เสร็จแล้วต้อง close ด้วยทุกครั้ง เพื่อไม่ให้เกิดปัญหาที่อาจจะตามมา

text_file.readline() จะเป็นคำสั่งที่ใช้ในการอ่านไฟล์เป็นทีละบรรทัดๆ ในส่วนซึ่ง ในโค้ด Python ด้านบนผมได้ เรียกใช้ คำสั่งนี้ไป 3 ครั้ง ผลออกมาก็จะเป็นดังนี้
จะเห็นได้กว่า จะอ่านออกมา ทีละบรรทัดๆ

text.files.readlines() เป็นคำสั่งที่จะอ่านไฟล์ ทั้งหมด ตั้งแต่บรรทัดแรกยันบรรทัดสุดท้าย โดยจะเก็บออกมาในรูปแบบ ชุด String

ซึ่งหลังจากได้สร้าง for loop ออกมาแล้วให้อ่านทีละบรรทัด ก็จะได้ผล เหมือนกับการเรียกใช้คำสั่ง readline ธรรมดา 3 ครั้งเช่นเดียวกัน


ซึ่งก็หมดแล้วสำหรับการ read ไฟล์ ส่วนการ write ไฟล์ จะมาต่อในอีกบทความนึง
หากมีความผิดพลาดประการใดก็ขออภัยไว้ ณ ที่นี้ด้วย



ไม่มีความคิดเห็น:

แสดงความคิดเห็น