Thứ Bảy, 19 tháng 7, 2025

📂 BÀI 8: XỬ LÝ FILE TRONG PYTHON – ĐỌC, GHI, XỬ LÝ DÒNG DỮ LIỆU

🎯 1. Tổng quan

Trong thế giới thực, mọi ứng dụng đều cần làm việc với file:

  • Lưu trữ thông tin đăng nhập, nhật ký

  • Đọc dữ liệu CSV, JSON, XML

  • Sinh báo cáo tự động

Python hỗ trợ thao tác file rất trực quan với hàm open() và các mode như:

  • 'r' → đọc (read)

  • 'w' → ghi đè (write)

  • 'a' → ghi tiếp (append)

  • 'b' → dạng nhị phân (binary)


🔓 2. Mở file với open()

Cú pháp:

python
f = open("data.txt", "r") # thao tác với f f.close() # Đóng lại sau khi xong

⚠️ Luôn close() để tránh lỗi rò rỉ file.

✅ Cách an toàn hơn: with

python
with open("data.txt", "r") as f: for line in f: print(line.strip())

with tự động đóng file dù có lỗi xảy ra – nên dùng 100% thời gian.


📖 3. Đọc file (read)

a. Đọc toàn bộ nội dung

python
with open("data.txt", "r") as f: content = f.read() print(content)

b. Đọc từng dòng

python
with open("data.txt", "r") as f: lines = f.readlines() for line in lines: print(line.strip())

.strip() để loại bỏ \n

c. Đọc từng dòng trực tiếp (nhẹ bộ nhớ hơn)

python
with open("data.txt", "r") as f: for line in f: print(line.strip())

✍️ 4. Ghi file (write & append)

a. Ghi đè (w) – xóa cũ, ghi mới

python
with open("out.txt", "w") as f: f.write("Dòng 1\n") f.write("Dòng 2\n")

b. Ghi tiếp (a) – giữ cũ, ghi thêm

python
with open("out.txt", "a") as f: f.write("Dòng thêm vào cuối\n")

🔄 5. Làm việc với dữ liệu có cấu trúc: ví dụ CSV

Ghi danh sách học sinh vào file:

python
students = ["Minh", "An", "Linh"] with open("students.txt", "w") as f: for name in students: f.write(name + "\n")

Đọc lại file và lưu vào list:

python
with open("students.txt", "r") as f: names = [line.strip() for line in f] print(names) # ['Minh', 'An', 'Linh']

📦 6. Đọc/Ghi file nhị phân ('rb', 'wb')

Ví dụ: sao chép hình ảnh

python
with open("image.jpg", "rb") as src: data = src.read() with open("copy.jpg", "wb") as dest: dest.write(data)

🧠 7. Một số lỗi phổ biến

LỗiNguyên nhânCách khắc phục
FileNotFoundErrorFile không tồn tạiKiểm tra path, xử lý bằng try-except
PermissionErrorKhông có quyền ghi/đọcMở đúng mode hoặc thư mục hợp lệ
Quên close()Dẫn tới lỗi file lockDùng with thay vì open đơn lẻ

🧪 8. Ví dụ thực tế: Ghi và đọc điểm sinh viên

python
# Ghi with open("scores.txt", "w") as f: f.write("Minh,9.0\nAn,8.5\nLinh,7.8\n") # Đọc with open("scores.txt", "r") as f: for line in f: name, score = line.strip().split(",") print(f"{name} có điểm: {score}")

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

  1. Ghi 100 số từ 1 đến 100 vào file

  2. Viết chương trình đọc file, đếm số dòng và số từ

  3. Chuyển nội dung từ file input.txt thành in hoa và ghi ra output.txt

  4. Viết chương trình lọc ra các dòng chứa từ khóa "ERROR" từ file log


✅ 10. Kết luận

  • Làm chủ open(), with, các mode 'r', 'w', 'a' → thao tác file chuyên nghiệp

  • Xử lý file là nền tảng cho mọi công việc thực tế: đọc cấu hình, sinh báo cáo, xử lý log

  • Kết hợp list, split(), strip() giúp bạn xử lý file như chuyên gia

=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master