ไพทอนกับการอ่านเขียนไฟล์ เป็นเรื่องง่ายมากๆ โดยไพทอน เตรียมฟังก์ชั่นไว้สำหรับจัดการกับไฟล์ อยู่แล้วโดยเราไม่ต้อง 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 ดูได้

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
MOD_MTB_NEWS_RECENT
การใช้คำสั่ง find_element_by_tag_name ของ selenium ในการเปิด tag ใหม่ของเว็บไซต์
โดย บัวบุญ จันทะโคตร ส 19 ส.ค. 2017 6:15 pm บอร์ด Python Knowledge
0
3
ส 19 ส.ค. 2017 6:15 pm โดย บัวบุญ จันทะโคตร
ช่วยด้วยครับ dreamweaver เมนูตารางด้านซ้ายชอบเลื่อนลงเมื่อใส่รูปหรือข้อความด้านขวา
โดย cmchamping ส 19 ส.ค. 2017 4:38 pm บอร์ด Programming - PHP
0
6
ส 19 ส.ค. 2017 4:38 pm โดย cmchamping
ใช้โปรแกรม dreamweaver สร้างเว็บ ตารางเมนู ชอบเลื่
โดย cmchamping ส 19 ส.ค. 2017 4:27 pm บอร์ด Programming - PHP
1
8
ส 19 ส.ค. 2017 4:27 pm โดย mindphp
สอบถามการใช้ pooler.get_pool ทำให้ไม่สามารถใช้ orm ไปหา image product ได้
โดย thatsawan ส 19 ส.ค. 2017 4:15 pm บอร์ด Odoo
0
4
ส 19 ส.ค. 2017 4:15 pm โดย thatsawan
อยากรู้ วิธีดู... หรือเอา รูป logo .... จาก หน้าเว็บที่กำหนด path รูปไว้ใน css
โดย Before Dong ส 19 ส.ค. 2017 4:14 pm บอร์ด HTML CSS
2
15
ส 19 ส.ค. 2017 4:14 pm โดย Before Dong
Css ปรับ Logo บอร์ด phpbbthailand.com
โดย mindphp ส 19 ส.ค. 2017 3:54 pm บอร์ด phpbbthailand.com
0
3
ส 19 ส.ค. 2017 3:54 pm โดย mindphp
อัพเดดความคืบหน้า
โดย mindphp ส 19 ส.ค. 2017 3:52 pm บอร์ด phpbbthailand.com
0
2
ส 19 ส.ค. 2017 3:52 pm โดย mindphp
TypeError: string indices must be integers, not str
โดย thatsawan ส 19 ส.ค. 2017 2:27 pm บอร์ด Odoo
0
6
ส 19 ส.ค. 2017 2:27 pm โดย thatsawan
ช่วยบอกลิงค์ที่โหลด MJ Upgrad joomla V1.5 เป็น V3.7
โดย บุคคลทั่วไป ส 19 ส.ค. 2017 10:24 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
0
7
ส 19 ส.ค. 2017 10:24 am โดย บุคคลทั่วไป
การนำเอา regex มาใช้ใน selenium
โดย บัวบุญ จันทะโคตร ศ 18 ส.ค. 2017 5:39 pm บอร์ด Python Knowledge
0
10
ศ 18 ส.ค. 2017 5:39 pm โดย บัวบุญ จันทะโคตร
อยากทราบแนวทางการสร้าง selenium ให้คลิ๊กลิ้งค์ต่อจากหน้า text link ที่คลิ๊กมา นั้นจะต้องเช่นไรครับ
โดย บัวบุญ จันทะโคตร ศ 18 ส.ค. 2017 4:33 pm บอร์ด Programming - C/C++ & java & Python
0
17
ศ 18 ส.ค. 2017 4:33 pm โดย บัวบุญ จันทะโคตร
ช่วยหน่อยครับ mdfile ไม่สามารถสร้าง categiries ได้
โดย Chinamon Sang ศ 18 ส.ค. 2017 9:09 am บอร์ด Joomla Development
5
39
ศ 18 ส.ค. 2017 9:09 am โดย tsukasaz
restart Odoo Server และ สั่งแสดง Log ในคำสั่งเดียว
โดย mindphp ศ 18 ส.ค. 2017 3:32 am บอร์ด Odoo
0
2
ศ 18 ส.ค. 2017 3:32 am โดย mindphp
Joomla ออกเวอร์ชั่น 3.7.5 Fix Bug ติดตั้ง Joomla ไม่ได้เมือใช้ remote ฐานข้อมูล
โดย mindphp ศ 18 ส.ค. 2017 3:23 am บอร์ด PHP News
1
18
ศ 18 ส.ค. 2017 3:23 am โดย toonytoony2004
สอบถามวิธีเรียกใช้งาน Jcrop.js
โดย Ik Kat พฤ 17 ส.ค. 2017 5:30 pm บอร์ด JavaScript & Jquery Ajax
3
19
พฤ 17 ส.ค. 2017 5:30 pm โดย thatsawan
คู่มือการใช้งานโปรแกรม OpenShot Video Editor โปรแกรมตัดต่อ VDO เบื้องต้น
โดย meeieis พฤ 17 ส.ค. 2017 4:01 pm บอร์ด Graphic design
0
23
พฤ 17 ส.ค. 2017 4:01 pm โดย meeieis
รู้จักคำสั่ง page_source ใน selenium webdriver
โดย บัวบุญ จันทะโคตร พฤ 17 ส.ค. 2017 3:08 pm บอร์ด Python Knowledge
0
16
พฤ 17 ส.ค. 2017 3:08 pm โดย บัวบุญ จันทะโคตร
เปลี่ยน ธีมแล้วโฆษณาไม่ขึ้นครับ
โดย Dia Ry พ 16 ส.ค. 2017 9:02 pm บอร์ด Programming - PHP
2
25
พ 16 ส.ค. 2017 9:02 pm โดย Dia Ry
เขียน php ติดต่อ dbf
โดย บุคคลทั่วไป พ 16 ส.ค. 2017 4:46 pm บอร์ด Programming - PHP
4
49
พ 16 ส.ค. 2017 4:46 pm โดย บุคคลทั่วไป
สอบถามวิธีการเรียกใช้งาน JavaScript
โดย Ik Kat พ 16 ส.ค. 2017 4:28 pm บอร์ด JavaScript & Jquery Ajax
1
36
พ 16 ส.ค. 2017 4:28 pm โดย บัวบุญ จันทะโคตร