เท็กซ์ไฟล์ (Text Files) เป็นอีกหนึ่งรูปแบบในการบันทึกข้อมูลครับ
มาเริ่มต้นที่การเปิดไฟล์กัน
รูปแบบการเปิดไฟล์ตัวแปร = open(ชื่อไฟล์, โหมดการเปิดไฟล์)
โหมดการเปิดไฟล์ที่ใช้กับเท็กซ์ไฟล์
r คือ อ่านเพียงอย่างเดียว
w คือ เขียนเพียงอย่างเดียว ถ้ายังไม่มีไฟล์ จะสร้างไฟล์ใหม่
w+ คือ เขียน สร้างไฟล์ใหม่ หรือแทนที่ข้อมูลเดิม
a คือ เปิดไฟล์แล้วเขียนข้อมูลต่อท้ายข้อมูลเดิม
r+ คือ เปิดไฟล์เพื่ออ่านหรือเขียนข้อมูลทับไฟล์
ตัวอย่าง
a = open('work1.txt', 'w')
เขียนข้อมูลลงเท็กซ์ไฟล์
สำหรับโหมดเขียนข้อมูลลงไฟล์นี้ ห้ามใช้ r ครับเพราะโหมดนี้ไม่สามารถเขียนข้อมูลลงไฟล์ได้ครับมีรูปแบบดังนี้ครับ
ตัวแปรที่เปิดไฟล์.write(ข้อความหรือตัวแปร)ตัวอย่าง
a = open('work1.txt', 'w')ผลลัพธ์
a.write('This is a testn')
เขียนข้อมูลรายการ (List) ลงเท็กซ์ไฟล์ทีละบรรทัด
มีรูปแบบดังนี้ตัวแปรที่เปิดไฟล์.writelines(List ข้อมูล)
อ่านข้อมูลจากเท็กซ์ไฟล์
มีรูปแบบดังนี้ตัวแปรที่เปิดไฟล์.read()ตัวอย่าง
a = open('work1.txt', 'r')ผลลัพธ์
a.read()
หรือจะใช้ with
with open('work1.txt', 'r') as f:ผลลัพธ์
read_data = f.read()
print(read_data)
อ่านข้อมูลจากเท็กซ์ไฟล์ทีละบรรทัด
ในการอ่านข้อมูลทีละบรรทัดนี้ Python ได้แบ่งบรรทัดโดยอ้างอิง \n ครับ เวลาเขียนข้อมูลลงไฟล์ หากต้องการขึ้นบรรทัดใหม่ให้ใส่ \n ตามหลังเข้าไปด้วยนะครับมีรูปแบบดังนี้
ตัวแปรที่เปิดไฟล์.readline()ตัวอย่าง
a = open('work2.txt', 'r')
a.readline()
ปิดไฟล์หลังเรียกใช้งาน
เมื่อเรียกใช้งานไฟล์เสร็จ ควรที่จะปิดไฟล์เพื่อคืนทรัพยากรให้กับระบบครับมีรูปแบบการใช้งานดังนี้ครับ
ตัวแปรที่เปิดไฟล์.closeตัวอย่าง
a.closeผลลัพธ์
ฟังก์ชันเพิ่มเติม
- ตัวแปรที่เปิดไฟล์.name - จะคืนค่าชื่อไฟล์ที่เปิดอยู่
- ตัวแปรที่เปิดไฟล์.mode - จะคืนค่าโหมดการเปิดไฟล์ เช่น w , r เป็นต้น
แบบฝีกหัด
- จงเขียนโปรแกรมอ่านข้อความจากเท็กซ์ไฟล์
- จงเขียนโปรแกรมเก็บข้อความจากที่ผู้ใช้กรอกลงไปในเท็กซ์ไฟล์
- ให้ข้อมูลในไฟล์ b.txt มีเลข 5 อยู่ ให้ดึงค่าตัวเลขมาลบด้วย 4 แล้วแสดงผลลัพธ์ที่ได้ใน Python
- จงเขียนโปรแกรมให้สร้างไฟล์ a.txt แล้วเขียนเลข 2 ลงไปในไฟล์ แล้วให้ดึงค่าจากในไฟล์มาลบ 1 แล้วนำผลลัพธ์ที่ได้ไปเก็บแทนที่เลข 2 ใน a.txt
การนำไปประยุกต์ใช้
ตัวอย่าง โปรแกรมเขียนบันทึกและอ่านอย่างง่ายโดยใช้เท็กซ์ไฟล์หลักการ รับค่าว่าจะทำงานไหน ถ้าเลือก 1 เขียนข้อมูลงเท็กซ์ไฟล์แล้วแสดงข้อความที่บันทึก จบการทำงาน ถ้าเลือก 2 อ่านข้อมูลจากเท็กซ์ไฟล์ จบการทำงาน
#!/usr/bin/pythonผลลัพธ์
#-*-coding: utf-8 -*-
print ("The program notesbook")
print ("Build by Wannaphong")
print ("What you do?")
print ("1.To write n 2.Read")
x = int(input("input: ")) #จะใช้ if else ในการเช็ค
if x == 1:
a = open('notes.txt','a+') #ใช้โหมดเปิดไฟล์ a+ เขียนต่อท้ายข้อมูลเดิม ถ้าไม่มีไฟล์ให้สร้างไฟล์ใหม่
ab = input("input: ") #รับข้อมูล
a.write(ab)#เขียนข้อมูลลงไฟล์
print ("Ok, Text's:",ab) #แสดงข้อมูลที่บันทึก
a.close #ปิดไฟล์
elif x == 2:
a = open('notes.txt','r+')#ใช้โหมดเปิดไฟล์ r+ อ่านข้อมูลในไฟล์ ถ้าไม่มีไฟล์ให้สร้างไฟล์ใหม่
print (a.read())#แสดงข้อมูลในไฟล์
a.close #ปิดไฟล์
เฉลยแบบฝึกหัด ข้อ 3, 4
ข้อ 3
f = open('b.txt','r') #เปิดไฟล์ b.txtข้อ 4
to = f.read() #อ่านไฟล์ b.txt
a = int(to) #เนื่องจากค่าที่อ่านได้จะเป็น str ต้องแปลงเป็น int ก่อน
s = a-4
print(s)
f.close #ปิดไฟล์
import sys
f = open('a.txt','w+') #เปิดไฟล์ a.txt ถ้ายังไม่มีไฟล์ ให้สร้างไฟล์ใหม่
f.write('2') #เก็บค่า str '2' ลงไป
f.close() #ปิดไฟล์
f = open('a.txt','r') #เปิดไฟล์ a.txt ให้สิทธิ์แค่อ่านไฟล์
to = f.read() #อ่านไฟล์ a.txt
a = int(to) #เนื่องจากค่าที่อ่านได้จะเป็น str ต้องแปลงเป็น int ก่อน
s = a-1
s = str(s) #แปลงให้เป็น str ก่อนเก็บเข้าไฟล์
f.close() #ปิดไฟล์
f = open('a.txt','w+') #เปิดไฟล์ a.txt ถ้ายังไม่มีไฟล์ ให้สร้างไฟล์ใหม่ หรือแทนที่ข้อมูลเดิม
f.write(s)
f.close() #ปิดไฟล์
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)