[Python for Beginner] EP.7: Work with files

[Python for Beginner] EP.7: Work with files

สวัสดีครับ พบกับ [Python for Beginner] EP.7 : Work with files จากตอนที่แล้วเราพูดถึงตัว Collections : Dictionary กันไป สำหรับวันนี้เราจะมาทำความรู้จักกับวิธีการอ่านเขียนไฟล์ ด้วยชุดคำสั่งพื้นฐานของ python กันนะครับ

python work with files

[Python for Beginner] EP.7: Work with files

การอ่านเขียนไฟล์ เป็นแนวทางแก้ปัญหาในเรื่องของการเก็บข้อมูล ดังตัวอย่างต่อไปนี้

สร้างไฟล์ชื่อ data.txt โดยให้ในไฟล์มีข้อมูลดังนี้

3
50 3
20 2
100 1

โจทย์คือ ต้องการให้อ่านข้อมูลขึ้นมา ข้อมูลในบรรทัดแรกสุด คือ n จำนวนข้อมูลทั้งหมดที่มี ในที่นี้คือ 3 จากนั้นแต่ละบรรทัดจะประกอบไปด้วยเลข 2 ชุดคือ เลขจำนวนเต็ม และ เลขที่ต้องการให้ยกกำลัง ผลลัพธ์ที่ต้องการคือ

3
50 x 50 x 50 = 125000
20 x 20 = 400
100 = 100

เราสามารถใช้คำสั่งอ่านไฟล์ได้ดังนี้

with open(‘data.txt’, ‘r’) as f:
data = f.read()
print(data)

โดยที่ function open จะรับ input 2 ตัวคือ 1) ชื่อไฟล์พร้อมที่อยู่ของไฟล์ และ 2) การเปิดไฟล์ต้องการให้เปิดขึ้นมาเพื่ออะไรโดยจะสามารถระบุได้ดังนี้
– r คือ เปิดไฟล์ขึ้นมาเพื่ออ่านอย่างเดียว
– w คือ เปิดไฟล์ขึ้นมาเพื่อเขียนทับข้อมูลเดิม
– a คือ เปิดไฟล์ขึ้นมาเพื่อเขียนข้อมูลเพิ่มไปยังไฟล์เดิม
– + ใช้คู่กับ r, w, a เช่น ‘r+’, ‘w+’ และ ‘a+’ คือหากไฟล์ที่ต้องการอ่านนั้นไม่มีอยู่ จะสามารถไฟล์นั้นขึ้นมาให้เลยทันที

หรือสามารถเขียนอีกแบบได้ดังนี้

with open(‘data.txt’, ‘r’) as f:
for line in f:
print(line)

โดยถ้าเปิดไฟล์ขึ้นมาอ่านได้
– ตัวแปรที่ชื่อ f คือข้อมูลที่อ่านได้ทั้งหมด
– ลูป [for line in f:] คือ การนำข้อมูลจากในไฟล์ อ่านขึ้นมาทีละ 1 บรรทัดเก็บไว้ใน ตัวแปร line

จากนั้นเรามาลองแก้โจทย์โดยเขียนดังนี้

with open(‘data.txt’, ‘r’) as f:
cnt = 1
for line in f:
if cnt > 1:
number,exp = line.split()
string = str(‘ x ‘.join([number] * int(exp)))
power = pow(int(number), int(exp))
print(‘{} = {}’.format(string, power))
else:
n = line.split()
print(n[0])
cnt+=1

ผลลัพธ์ที่ได้

3
50 x 50 x 50 = 125000
20 x 20 = 400
100 = 100

ฟังก์ชั่นที่เกี่ยวข้องกับโจทย์นี้มีดังนี้

  • split() คือ ฟังก์ชั่นแบ่งข้อมูล โดยจะแบ่งข้อมูลจากสัญลักษณ์ เคาะวรรค
  • int() คือ ฟังก์ชั่นเปลี่ยนข้อมูลให้เป็น integer
  • str() คือ ฟังก์ชั่นเปลี่ยนข้อมูลให้เป็น string
  • join() คือ ฟังก์ชั่นเปลี่ยนข้อมูลจาก tuple ให้เป็น string
  • pow(ตัวเลข, เลขยกกำลัง) คือ ฟังก์ชั่นคำนวณผลลัพธ์ของเลขยกกำลัง
  • print(“{} {}”.format(ตัวแปรที่1, ตัวแปรที่2) คือ วิธีการนำค่าที่อยู่ในตัวแปร1 และ 2 มาแสดงให้ตรงกับสัญลักษณ์ “{}”

เป็นยังไงกันบ้างครับ หวังว่าคงพอทำให้เห็นภาพวิธีการใช้ python ในการอ่านเขียนไฟล์กันนะครับ ซึ่งก็จะมี usecase เช่นเก็บข้อมูล logs บน text ไฟล์ หรืออ่านข้อมูลต่างๆมาเก็บไว้ที่ csv file เป็นต้น

หากมีข้อสงสัยสอบถามเพิ่มเติมได้ตลอดเลยนะครับ หรือถ้าชอบ ฝากแชร์​และติดตามเพื่อกำลังใจให้ด้วยนะครับ แล้วพบกันใหม่ในครั้งหน้า ขอบคุณครับ

ข้อมูลเพิ่มเติม

Happy Coding !!!

Recent Posts

SQL Database Deployment Model

Microsoft Azure SQL Database [Deployment Model]

Deployment Model   เป็นบริการในรูปแบบPlatform as a Serviceของระบบฐานข้อมูลDatabaseบนโครงสร้างของMicrosoft AzureโดยมีDeployment Options ดังต่อไปนี้ 

Read More »
Microsoft App Serviceคืออะไร?

Microsoft Azure App Service คืออะไร?

Azure App Service เป็นอีกหนึ่งในบริการยอดนิยมของ Microsoft ที่ถูกใช้บริการมากที่สุด บริการนี้มีเครื่องมือที่จำเป็นเเละตอบโจทย์เป็นอย่างมากสำหรับ Developer ที่ต้องการมุ่งเน้นเเละให้ความสำคัญไปกับการพัฒนา Application

Read More »