7.3 การการเขียนข้อมูลลงบน Text file
ในการเขียนโปรแกรม ไฟล์ (File) คือสิ่งที่ใช้สำหรับเก็บข้อมูลบนคอมพิวเตอร์ในหน่วยเก็บข้อมูล คอมพิวเตอร์มีไฟล์หลากหลายประเภทขึ้นอยู่กับวัตถุประสงค์การใช้งานของมัน โดยทั่วไปแล้วไฟล์จะแบ่งออกเป็น 2 รูปแบบคือ Text file และ Binary file โดย Text file จะเก็บไฟล์ในรูปแบบของชุดตัวอักษรหรือข้อความที่มนุษย์สามารถอ่านเข้าใจได้ ในขณะที่ Binary file เก็บข้อมูลในรูปแบบ Binary form สำหรับคอมพิวเตอร์เพื่อทำงาน ในบทนี้ เราจะพูดถึงการทำงานกับไฟล์เบื้องต้นในภาษา Python
ในการทำงานกับไฟล์ นอกจากการอ่านข้อมูลแล้วยังมีการเขียนข้อมูลลงไปในไฟล์ ในการเขียนโปรแกรมนั้นอาจจะมีข้อมูลบางอย่างที่เราจะต้องเก็บไว้ในรูปแบบของไฟล์ เพื่อนำไปใช้งานในอนาคตหรือใช้กับโปรแกรมอื่นๆ ต่อไปเป็นตัวอย่างของการเขียนข้อมูลลงใน Text file ในภาษา Python โดยโปรแกรมของเราจะทำการบันทึกข้อมูลของพนักงานโดยมีชื่อและภาษาโปรแกรมที่เขียนโดยรับค่าเหล่านี้มาจากคีย์บอร์ด และบันทึกข้อมูลเหล่านั้นไว้ในไฟล์ นี่เป็นโค้ดการทำงานของโปรแกรม
f = open('employees.txt', 'w')
for i in range(1, 6):
print('Employee', i)
name = input('Name: ')
language = input('Language: ')
f.write(name + ', ' + language + '\n')
print('Writing to file completed')
f.close()
ในตัวอย่าง เป็นโปรแกรมเขียนข้อมูลลงบนไฟล์โดยโปรแกรมจะรับข้อมูลจากคีย์บอร์ด ในตอนแรกเราได้ทำการเปิดไฟล์ employees.txt เพื่อเขียนข้อมูลใหม่โดยการใช้โหมด w ในโหมดนี้ถ้าหากไม่มีไฟล์ดังกล่าวอยู่โปรแกรมจะสร้างไฟล์ขึ้นมาใหม่ หรือหากมีอยู่จะทำการลบไฟล์เดิมและสร้างใหม่
for i in range(1, 6):
print('Employee', i)
name = input('Name: ')
language = input('Language: ')
f.write(name + ', ' + language + '\n')
หลังจากการเปิดไฟล์เสร็จเรียบร้อยแล้ว เราใช้คำสั่ง For loop ในการวนอ่านข้อมูลของพนักงานจำนวน 5 คน โดยมีชื่อและภาษาโปรแกรมที่เขียนจากทางคีย์บอร์ด หลังจากได้ข้อมูลแล้วเราใช้เมธอด write() เพื่อเขียน String ลงไปบนไฟล์และจัดรูปแบบของ String โดยคั่นข้อมูลแต่ละแบบด้วยเครื่องหมายคอมมา (,) โปรแกรมวนอ่านค่าและบันทึกข้อมูลจนครบ 5 รอบและออกจาก Loop และเราปิดไฟล์หลังจากที่เขียนเสร็จด้วยเมธอด close()
เมื่อรันโปรแกรมจะได้ผลลัพธ์ ดังนี้
Employee 1
Name: Mateo
Language: Python
Employee 2
Name: Thomas
Language: Java
Employee 3
Name: James
Language: PHP
Employee 4
Name: Danny
Language: Python
Employee 5
Name: Matthew
Language: Scala
Writing to file completed
ในการเขียนข้อมูลลงบนไฟล์ในภาษา Python นั้นมีหลายโหมดด้วยกัน โดยปกติแล้วในโหมด w โปรแกรมจะสร้างไฟล์ขึ้นมาใหม่สำหรับการเขียนเสมอ สำหรับการเขียนข้อมูลแบบต่อท้ายไฟล์เดิมนั้น เราสามารถทำได้โดยการเปิดไฟล์ในโหมด a มาดูตัวอย่าง
f = open('employees.txt', 'a')
f.write('Johnny, PHP\n')
f.write('Lucas, Java\n')
f.close()
เป็นโปรแกรมในการเขียนข้อมูลต่อท้ายไฟล์เดิม จากในไฟล์ก่อนหน้า employees.txt เราได้เขียนข้อมูลของพนักงานลงไปในไฟล์แล้ว 5 คน (หรือ 5 บรรทัด) ในโปรแกรมนี้เป็นการเขียนข้อมูลเพิ่มลงไปอีก 2 บรรทัด
เมื่อรันโปรแกรมจะได้ผลลัพธ์ ดังนี้
Mateo, Python
Thomas, Java
James, PHP
Danny, Python
Matthew, Scala
Johnny, PHP
Lucas, Java