ให้เรตสมาชิก: 5 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งาน
 

ไพทอนกับการอ่านเขียนไฟล์ เป็นเรื่องง่ายมากๆ โดยไพทอน เตรียมฟังก์ชั่นไว้สำหรับจัดการกับไฟล์ อยู่แล้วโดยเราไม่ต้อง import อะไรเพิ่มเข้ามา การอ่านเขียนไฟล์ ใน ไพทอน ก็จะคล้ายๆ กับภาษา C, PHP
ซึ่งจะมีฟังก์ชั่น open เป็นพระเองของเรา กล่าว คือไม่ว่าเราต้องการจะทำอะไร กับไฟล์ เราก็ต้อง เปิดไฟล์ ด้วย ฟังก์ชั่น open กันก่อน

รูปแบบฟังก์ชั่น open


file object = open(file_name [, access_mode][, buffering])

ฟังก์ชั่นจะคืนค่าออกมาเป็น object
file_name คือไฟล์ที่เราต้องการเปิด
access_mode คือรูปแบบในการเปิดไฟล์ดูรายละเอียดในตารางด้านล่าง
buffering กำหนดว่าเราจะใช้ buffer หรือไม่

mode รายละเอียด
r เปิดไฟล์เพื่ออ่านอย่างเดียว. pointer อยู่ที่จุดเริ่มต้นของไฟล์. **ถ้าเราไม่ก็หมด access_mode ไพทอนจะเปิดไฟล์ด้วย mode นี้.
rb เปิดไฟล์อ่านในรูปแบบ binary .
r+ เปิดไฟล์เพื่ออ่านและเขียน pointer อยู่ที่จุดเริ่มต้นของไฟล์
rb+ เปิดไฟล์เพื่ออ่านและเขียนด้วยรูปบบ binary pointer อยู่ที่จุดเริ่มต้นของไฟล์
w เปิดไฟล์เพื่อเขียนเท่านั้น ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
wb เปิดไฟล์เพื่อเขียนในรูปแบบ binary เท่านั้น ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
w+ เปิดไฟล์เพื่ออ่านและเขียน ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
wb+ เปิดไฟล์เพื่ออ่านและเขียนแบบ binary ถ้ามีไฟล์อยู่แล้วจะเขียนทับไฟล์เก่า ถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้
a เปิดไฟล์ เพื่อต่อท้ายข้อมูล เหมาะสำหรับไฟล์ที่มีข้อมูลอยู่แล้วและต้องการเพิ่ม เนื้อหาลงไป ไม่มีการเขียนทับข้อความเดิม และถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้เอง
ab เปิดไฟล์ เพื่อต่อท้ายข้อมูลรูปแบบข้อมูลเป็น binary เหมาะสำหรับไฟล์ที่มีข้อมูลอยู่แล้วและต้องการเพิ่ม เนื้อหาลงไป ไม่มีการเขียนทับข้อความเดิม และถ้ายังไม่มีไฟล์ ไพทอนจะสร้างไฟล์ขึ้นมาให้เอง
a+ เปิดไฟล์เพื่ออ่านและเขียน ต่อท้ายไฟล์
ab+ เปิดไฟล์เพื่ออ่านและเขียน ต่อท้ายไฟล์ ในรูปแบบ binary

การเปิดไฟล์จะใช้คู่กับ ปิดไฟล์เสมอ
รูปแบบหลังจากเปิดไฟล์ขึ้นมาใช้งานแล้ว เราก็ปิดไฟล์ด้วย ฟังก์ชั่น close()
รูปแบบ
fileObject.close()ตัวอย่าง file.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-
l  = 1
f = open('test_file.txt', 'w')
while True:
        print('%d ถ้าจะออกจากโปรแกรมพิมพ์ bye ' %l)
        title = input('%d ป้อนชื่อ :' %l)
        cost = input('%d ป้อนชือเล่น :' %l)
        if title=='bye' or cost=='bye' :
            break
        f.write('%.2d,  %s,  %s \n' %(l, title, cost))
        l = l+1
f.close()

จากตัวอย่างโปรแกรม coding utf8 เป็นการกำหนดว่าไฟล์นี้เราต้องการ coding เป็น utf8 ซึ่งจะใช้งานกับภาษาไทย และภาษาอื่นๆได้
เมื่อรันโปรแกรมจะมีหน้าจอให้เรากรอก ชื่อ และ ชื่อเล่น ขึ้นมาเรื่อยๆ และ โปรแกรมจะเขียนลงไปในไฟล์ ชื่อ test_file.txt ให้ สนกว่าเราจะกรอกชื่อ หรือ ชื่อเล่นเป็น bye
*** ถ้าต้องการดูข้อมูลในไฟล์ ก็สามารถเปิดไฟล์ test_file.txt ด้วยโปรแกรม text editor เช่น notepad ดูได้

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ตัวอย่างคำสั่ง การใช้ API ส่งภาพ ผ่าน curl ด้วย binary data
โดย mindphp อ 30 ส.ค. 2020 11:54 pm บอร์ด Linux - Web Server
0
121
อ 30 ส.ค. 2020 11:54 pm โดย mindphp
สอบถามเรื่อง local,server ครับ
โดย nai_cyp พฤ 27 ส.ค. 2020 7:19 pm บอร์ด Programming - C/C++ & java & Python
4
351
จ 31 ส.ค. 2020 5:03 pm โดย mindphp
วิธีใส่รูปภาพประกอบในวิดีโอด้วย DaVinci Resolve 16
โดย nai_cyp พฤ 27 ส.ค. 2020 6:59 pm บอร์ด Graphic design
0
185
พฤ 27 ส.ค. 2020 6:59 pm โดย nai_cyp
Drop off กับ fulfillment เหมือนหรือ ต่างกันมั้ย
โดย thatsawan พ 26 ส.ค. 2020 4:57 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
131
พ 26 ส.ค. 2020 4:57 pm โดย thatsawan
สอบถามกรณีที่มีการจ่ายบิลล่วงหน้าในระบบ Petty cash
โดย natthanit.r2538 พ 26 ส.ค. 2020 4:51 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
3
265
พฤ 27 ส.ค. 2020 4:04 pm โดย natthanit.r2538
การคิด ภพ.36 และการยื่นภพ.36
โดย natthanit.r2538 พ 26 ส.ค. 2020 2:44 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
105
พ 26 ส.ค. 2020 2:52 pm โดย natthanit.r2538
อัพเดทกันเลย Joomla 3.9.21 ปรับปรุงทั้งความปลอดภัยและระบบหลักให้ดีขึ้น
โดย tsukasaz พ 26 ส.ค. 2020 12:14 pm บอร์ด MindPHP News & Feedback
0
150
พ 26 ส.ค. 2020 12:14 pm โดย tsukasaz
สอบถามวิธีดึงข้อมูลจาก Youtube ครับ
โดย nai_cyp พ 26 ส.ค. 2020 11:05 am บอร์ด Programming - C/C++ & java & Python
2
189
พ 26 ส.ค. 2020 11:33 am โดย nai_cyp
แสดงวิธีการขนส่งสินค้าในร้านค้าออนไลน์ด้วย Module Shipping Method ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 6:49 pm บอร์ด MindPHP News & Feedback
0
97
อ 25 ส.ค. 2020 6:49 pm โดย bolue
แท็กชื่อสินค้าในร้านค้าออนไลน์ด้วย Module Products tags name ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 6:29 pm บอร์ด MindPHP News & Feedback
0
103
อ 25 ส.ค. 2020 6:29 pm โดย bolue
วิธีรันโปรแกรม .bat file ใน task schedule โดยไม่เปิด windows ขึ้นมาให้กวนใจ
โดย jirawoot อ 25 ส.ค. 2020 4:46 pm บอร์ด Python Knowledge
0
147
อ 25 ส.ค. 2020 4:46 pm โดย jirawoot
Tracking prevention คืออะไร และมีประโยชน์อย่างไร?
โดย nai_cyp อ 25 ส.ค. 2020 4:21 pm บอร์ด Share Knowledge
0
125
อ 25 ส.ค. 2020 4:21 pm โดย nai_cyp
สอบถามการ ใช้งาน module filter ของ MooZiiCart ค่ะ
โดย bolue อ 25 ส.ค. 2020 4:06 pm บอร์ด MindPHP News & Feedback
4
138
พ 26 ส.ค. 2020 10:27 am โดย bolue
การเช็คข้อมูลการนำส่ง ภ.ง.ด. 90/91
โดย natthanit.r2538 อ 25 ส.ค. 2020 3:51 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
101
อ 25 ส.ค. 2020 4:25 pm โดย natthanit.r2538
มาแล้ววว MDImporter ตัวช่วยในการ import ข้อมูลจากไฟล์ excel เข้าระบบ Joomla!!!!
โดย bolue อ 25 ส.ค. 2020 1:01 pm บอร์ด MindPHP News & Feedback
0
74
อ 25 ส.ค. 2020 1:01 pm โดย bolue
สินค้าที่มีผู้เข้าชมมากที่สุดในร้านค้าออนไลน์ด้วย Module Top Hits ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 12:15 pm บอร์ด MindPHP News & Feedback
0
87
อ 25 ส.ค. 2020 12:15 pm โดย bolue
สินค้าที่ได้คะแนนมากสุดในร้านค้าออนไลน์ด้วย Module Top rating ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 11:59 am บอร์ด MindPHP News & Feedback
0
89
อ 25 ส.ค. 2020 11:59 am โดย bolue
ความคิดเห็นล่าสุดในร้านค้าออนไลน์ด้วย Module Recent Comment ใน MooZiiCart
โดย bolue อ 25 ส.ค. 2020 11:41 am บอร์ด MindPHP News & Feedback
0
78
อ 25 ส.ค. 2020 11:41 am โดย bolue
แสดงผู้ผลิตสินค้าในร้านค้าออนไลน์ด้วย Module Manufacturer ใน MooZiiCart
โดย bolue จ 24 ส.ค. 2020 7:25 pm บอร์ด MindPHP News & Feedback
0
93
จ 24 ส.ค. 2020 7:25 pm โดย bolue
แสดงราคาสินค้าได้หลายสกุลเงินในร้านค้าออนไลน์ด้วย Module Currency ใน MooZiiCart
โดย bolue จ 24 ส.ค. 2020 5:50 pm บอร์ด MindPHP News & Feedback
0
103
จ 24 ส.ค. 2020 5:50 pm โดย bolue