Skip to main content

BÀI 10-1: ĐỌC VÀ GHI FILE TRONG PYTHON (CHI TIẾT)


1. Giới thiệu về file trong Python

File là nơi lưu trữ dữ liệu trên ổ đĩa cứng hoặc bộ nhớ ngoài. Python cung cấp các phương thức để đọc (lấy dữ liệu từ file) và ghi (lưu dữ liệu vào file) rất thuận tiện.


2. Mở file bằng hàm open()

  • Cú pháp:
file = open("ten_file.txt", "mode")
  • mode (chế độ) có các dạng phổ biến:
ModeÝ nghĩa
"r"Mở file để đọc (read)
"w"Mở file để ghi, nếu file tồn tại sẽ xóa dữ liệu cũ (write)
"a"Mở file để ghi thêm (append), dữ liệu cũ được giữ lại
"b"Mở file ở chế độ nhị phân (binary), kết hợp với các mode trên (ví dụ "rb")

3. Cách đọc file trong Python

3.1. Đọc toàn bộ nội dung file

with open("example.txt", "r") as file:
content = file.read()
print(content)
  • Hàm read() đọc toàn bộ dữ liệu trong file thành một chuỗi (string).
  • Câu lệnh with đảm bảo sau khi đọc xong file sẽ được tự động đóng, tránh lỗi không đóng file.

3.2. Đọc từng dòng một với readline()

with open("example.txt", "r") as file:
line1 = file.readline()
print(line1)
line2 = file.readline()
print(line2)
  • Mỗi lần gọi readline() đọc một dòng trong file.

3.3. Đọc tất cả dòng và trả về danh sách bằng readlines()

with open("example.txt", "r") as file:
lines = file.readlines()
for line in lines:
print(line.strip()) # strip() để bỏ ký tự xuống dòng

4. Cách ghi file trong Python

4.1. Ghi đè file (viết mới)

with open("output.txt", "w") as file:
file.write("Dòng đầu tiên.\n")
file.write("Dòng thứ hai.\n")
  • "w" sẽ tạo file mới nếu chưa có hoặc xóa hết nội dung cũ nếu file đã tồn tại.
  • \n dùng để xuống dòng.

4.2. Ghi thêm vào file (không xóa dữ liệu cũ)

with open("output.txt", "a") as file:
file.write("Dòng mới được thêm vào.\n")

5. Một số lưu ý khi làm việc với file

  • Luôn sử dụng cú pháp with open(...) as file: để tự động đóng file sau khi thao tác.
  • Nếu mở file với "r" mà file không tồn tại sẽ báo lỗi FileNotFoundError.
  • Khi đọc file, dữ liệu trả về là kiểu chuỗi (string).
  • Khi ghi file, dữ liệu phải là chuỗi. Nếu muốn ghi các kiểu dữ liệu khác (số, list...), cần chuyển thành chuỗi bằng hàm str().

6. Ví dụ tổng hợp

# Viết dữ liệu vào file
with open("data.txt", "w") as f:
f.write("Hello Python!\n")
f.write("Học cách đọc ghi file.\n")

# Đọc dữ liệu từ file
with open("data.txt", "r") as f:
content = f.read()
print("Nội dung file:")
print(content)

7. Bài tập thực hành

Bài tập 1: Ghi câu hỏi do người dùng nhập vào file

Viết chương trình cho phép người dùng nhập 3 câu hỏi, lưu chúng vào file questions.txt.

Bài tập 2: Đọc và in ra câu hỏi

Viết chương trình đọc file questions.txt và in từng câu hỏi ra màn hình, mỗi câu trên một dòng.


Gợi ý cách làm bài tập:

# Bài tập 1: Ghi 3 câu hỏi vào file
with open("questions.txt", "w") as f:
for i in range(3):
q = input(f"Nhập câu hỏi thứ {i+1}: ")
f.write(q + "\n")

# Bài tập 2: Đọc và in câu hỏi
with open("questions.txt", "r") as f:
lines = f.readlines()
for line in lines:
print(line.strip())

8. Tóm tắt

Công việcCú phápMô tả
Mở file để đọcopen("file.txt", "r")Mở file để đọc dữ liệu
Mở file để ghiopen("file.txt", "w")Ghi đè nội dung file
Mở file để ghi thêmopen("file.txt", "a")Thêm dữ liệu vào cuối file
Đọc toàn bộ filefile.read()Đọc hết nội dung file
Đọc một dòngfile.readline()Đọc từng dòng một
Đọc tất cả dòngfile.readlines()Trả về list các dòng
Ghi nội dungfile.write("chuỗi")Ghi chuỗi vào file
Đóng file tự độngwith open(...) as file:Quản lý file an toàn, tự động đóng file