首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

Python 檔案讀寫完整指南:open、with、編碼與二進位模式

     編輯:更多程式設計知識

檔案 I/O 是程式設計基礎。Python 內建 open() 函式,配合 with 陳述式能安全、簡潔地處理檔案。本文涵蓋文字、二進位、編碼轉換等核心技巧。

讀取檔案

基本開啟與讀取

f = open('/path/to/file.txt', 'r')  # 'r' 表示唯讀
content = f.read()                  # 一次讀完全檔
f.close()

若檔案不存在會拋出 IOError(Python 2)或 FileNotFoundError(Python 3)。

安全關閉:try/finally 與 with

# 傳統寫法
try:
    f = open('/path/to/file', 'r')
    print(f.read())
finally:
    if f:
        f.close()

# 推薦:with 區塊自動關閉
with open('/path/to/file', 'r') as f:
    print(f.read())

大檔案分塊讀取

  • read(size):每次讀指定位元組數。
  • readline():逐行讀取。
  • readlines():一次讀全檔並回傳列表。
for line in f.readlines():
    print(line.strip())  # 移除換行符

檔案類對象

擁有 read() 方法的物件統稱為 file-like Object,包含記憶體串流(StringIO)、網路串流等,實現多型。

二進位檔案

with open('image.jpg', 'rb') as f:
    data = f.read()  # 回傳 bytes 物件

文字編碼處理

手動解碼

with open('gbk.txt', 'rb') as f:
    text = f.read().decode('gbk')

使用 codecs 自動轉碼


import codecs
with codecs.open('gbk.txt', 'r', 'gbk') as f:
    text = f.read()  # 直接得到 unicode 字串

寫入檔案

with open('output.txt', 'w') as f:
    f.write('Hello, world!')

# 指定編碼寫入
import codecs
with codecs.open('output.txt', 'w', 'utf-8') as f:
    f.write(u'測試中文')

注意:作業系統會緩衝寫入資料,必須呼叫 close() 或離開 with 區塊才會真正寫入磁碟,否則資料可能遺失。

小結

掌握 open() 模式、with 區塊、編碼轉換與分塊讀取,即能安全高效處理各類檔案 I/O 需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved