Cách đọc tệp bằng Python (Văn bản và JSON)

Tìm hiểu cách đọc tệp bằng Python. Nắm vững câu lệnh mở, dòng đọc, dòng đọc và xử lý các ngoại lệ tệp một cách an toàn.

Hãy thử Giải pháp này trong Trình chỉnh sửa

Tổng quan

Xử lý tệp là một kỹ năng cần thiết đối với bất kỳ nhà phát triển Python nào. Đọc dữ liệu từ tệp cho phép bạn xử lý tài liệu văn bản, cấu hình, nhật ký, cơ sở dữ liệu và bộ dữ liệu có cấu trúc. Python làm cho các thao tác với tệp trở nên đơn giản hơn nhiều thông qua hàm `open()` tích hợp sẵn.

Khi làm việc với các tệp, cách thực hành quan trọng nhất là sử dụng câu lệnh `with` để tạo trình quản lý bối cảnh. Mẫu `with open(...)` đảm bảo rằng tệp được đóng an toàn và đúng cách ngay khi quá trình thực thi rời khỏi khối, ngay cả khi có ngoại lệ xảy ra bên trong. Việc quên đóng tệp có thể gây rò rỉ bộ nhớ, hỏng tệp và khóa tài nguyên khỏi các quy trình hệ thống khác.

Python cung cấp một số phương thức để đọc dữ liệu khi tệp được mở. Phương thức `.read()` trả về toàn bộ nội dung của tệp dưới dạng một chuỗi. Phương thức `.readline()` đọc một dòng duy nhất, khiến nó trở nên hoàn hảo để lặp lại các tệp khổng lồ không vừa với bộ nhớ. Phương thức `.readlines()` đọc tất cả các dòng và trả về chúng dưới dạng danh sách các chuỗi. Hiểu phương pháp nào sẽ sử dụng sẽ ngăn ngừa tình trạng cạn kiệt bộ nhớ và làm cho chương trình của bạn có khả năng mở rộng cao hơn.

Đầu ra mã & thực thi

Tập lệnh này thể hiện việc đọc nội dung tệp một cách an toàn bằng cách sử dụng trình quản lý ngữ cảnh, đọc từng dòng và xử lý lỗi.

# Writing a dummy file first
with open("sample.txt", "w") as f:
    f.write("Line 1: Welcome to PyRun!\nLine 2: Python runs in the browser.\nLine 3: Clean and simple.")

# 1. Read entire file contents
with open("sample.txt", "r") as file:
    content = file.read()
    print("--- Entire File ---")
    print(content)

# 2. Read line-by-line (Memory efficient for large files)
print("\n--- Line by Line ---")
with open("sample.txt", "r") as file:
    for line in file:
        print("Read line:", line.strip())
Đầu ra thiết bị đầu cuối
--- Entire File ---
Line 1: Welcome to PyRun!
Line 2: Python runs in the browser.
Line 3: Clean and simple.

--- Line by Line ---
Read line: Line 1: Welcome to PyRun!
Read line: Line 2: Python runs in the browser.
Read line: Line 3: Clean and simple.

Triển khai từng bước

  • Sử dụng câu lệnh with open("filename", "r") as file để mở tệp một cách an toàn để đọc.
  • Gọi file.read() để tải toàn bộ nội dung tệp vào một biến.
  • Lặp lại trực tiếp trên đối tượng tệp bằng vòng lặp for để đọc từng dòng một một cách hiệu quả.
  • Luôn chỉ định mã hóa (ví dụ: mã hóa="utf-8") để tương thích ký tự quốc tế.

Câu hỏi thường gặp

Tại sao tôi nên sử dụng câu lệnh with để mở tệp?

Câu lệnh with tạo trình quản lý bối cảnh tự động đóng tệp khi thoát khối, ngay cả khi xảy ra lỗi.

Làm cách nào để xử lý FileNotFoundError?

Gói câu lệnh open() của bạn trong một khối thử ngoại trừ, bắt FileNotFoundError: try: với open(...) ... ngoại trừ FileNotFoundError: print("Không tìm thấy tệp!").

Chủ đề liên quan

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.