Cách đọc từ một tệp trong Python
Category: Python
Đọc từ một tệp trong Python có nghĩa là truy cập và lấy nội dung của tệp, cho dù đó là văn bản, dữ liệu nhị phân hay định dạng dữ liệu cụ thể như CSV hoặc JSON. Python cung cấp các hàm và phương thức tích hợp để đọc tệp trong Python một cách hiệu quả.
Tệp ví dụ: geeks.txt
Hello World
Hello GeeksforGeeks
Đọc tập tin cơ bản trong Python
Đọc tệp cơ bản bao gồm mở tệp, đọc nội dung của tệp và đóng tệp đúng cách để giải phóng tài nguyên hệ thống.
Các bước thực hiện:
Mở tệp: open("filename", "mode") mở tệp ở chế độ được chỉ định (ví dụ: chế độ đọc "r").
Đọc nội dung: Sử dụng các phương thức read(), readline() hoặc readlines().
Đóng tệp: close() đảm bảo giải phóng tài nguyên hệ thống.
Ví dụ: Đọc toàn bộ tệp
# Mở tệp ở chế độ đọc
file = open("geeks.txt", "r")
# Đọc toàn bộ nội dung của tập tin
content = file.read()
print(content)
# Đóng tập tin
file.close()
Đầu ra:
Hello World
Hello GeeksforGeeks
Giải thích: Đoạn mã này mở geeks.txt ở chế độ đọc, đọc toàn bộ nội dung của nó thành một chuỗi, in ra rồi đóng tệp để giải phóng tài nguyên.
Thực hành tốt nhất: Sử dụng câu lệnh with
Sử dụng with open(...) đảm bảo tệp được tự động đóng.
with open("geeks.txt", "r") as file:
content = file.read()
print(content)
Hello World
Hello GeeksforGeeks
Giải thích: Mã này đảm bảo rằng tệp sẽ tự động đóng khi thoát khỏi khối, ngăn ngừa rò rỉ tài nguyên.
Mục lục
Đọc từng dòng một tập tin
Đọc tập tin nhị phân trong Python
Đọc các phần cụ thể của một tập tin
Đọc tệp CSV trong Python
Đọc các tệp JSON trong Python
Đọc từng dòng một tập tin
Chúng ta có thể muốn đọc từng dòng một tệp , đặc biệt là đối với các tệp lớn, nơi mà việc đọc toàn bộ nội dung cùng một lúc là không thực tế. Điều này được thực hiện bằng hai phương pháp sau:
đối với dòng trong tệp: Lặp lại từng dòng trong tệp.
line.strip(): Xóa bất kỳ khoảng trắng nào ở đầu hoặc cuối, bao gồm cả ký tự xuống dòng.
Ví dụ 1: Sử dụng vòng lặp để đọc từng dòng
# Mở tệp ở chế độ đọc
file = open("geeks.txt", "r")
# Đọc từng dòng một
for line in file:
print(line.strip()) # .strip() để xóa các ký tự xuống dòng
# Đóng tập tin
file.close()
Đầu ra:
Hello World
Hello GeeksforGeeks
Giải thích: Phương pháp này đọc từng dòng của tệp một và in ra sau khi xóa khoảng trắng đầu/cuối.
Ví dụ 2: Sử dụng readline()
file.readline() đọc từng dòng một. while line tiếp tục cho đến khi không còn dòng nào để đọc nữa.
# Mở tệp ở chế độ đọc
file = open("geeks.txt", "r")
# Đọc dòng đầu tiên
line = file.readline()
while line:
print(line.strip())
line = file.readline() # Đọc dòng tiếp theo
# Đóng tập tin
file.close()
Đầu ra:
Hello World
Hello GeeksforGeeks
Giải thích: Phương pháp này đọc từng dòng một bằng cách sử dụng readline(), rất hữu ích khi xử lý tệp theo từng phần.
Đọc tập tin nhị phân trong Python
Tệp nhị phân lưu trữ dữ liệu theo định dạng không phải để đọc dưới dạng văn bản. Chúng có thể bao gồm hình ảnh, tệp thực thi hoặc bất kỳ dữ liệu nào không phải văn bản. Chúng tôi đang sử dụng các phương pháp sau để đọc tệp nhị phân :
open("example.bin", "rb"): Mở tệp example.bin ở chế độ nhị phân đọc.
file.read(): Đọc toàn bộ nội dung của tệp dưới dạng byte.
file.close(): Đóng tệp để giải phóng tài nguyên hệ thống.
Ví dụ: Đọc một tệp nhị phân
# Mở tệp nhị phân ở chế độ đọc nhị phân
file = open("geeks.txt", "rb")
# Đọc toàn bộ nội dung của tập tin
content = file.read()
# In nội dung (sẽ được tính bằng byte)
print(content)
# Đóng tập tin
file.close()
Đầu ra:
b'Hello World\r\nHello GeeksforGeeks'
Giải thích: Đoạn mã này đọc tệp ở chế độ nhị phân ("rb") và in nội dung của tệp dưới dạng byte, điều này cần thiết để xử lý các tệp không phải văn bản.
Đọc các phần cụ thể của một tập tin
Đôi khi, chúng ta chỉ cần đọc một phần cụ thể của tệp, chẳng hạn như một vài byte đầu tiên, một dòng cụ thể hoặc một phạm vi các dòng. Ví dụ: Đọc N byte đầu tiên
# Mở tệp ở chế độ đọc
file = open("geeks.txt", "r")
# Đọc 10 byte đầu tiên
content = file.read(10)
print(content)
# Đóng tập tin
file.close()
Đầu ra:
Hello World
Giải thích: Mã này chỉ đọc 10 ký tự đầu tiên của tệp, hữu ích khi xem trước nội dung tệp.
Đọc tệp CSV trong Python
Đọc các tệp CSV (Giá trị phân cách bằng dấu phẩy) là một tác vụ phổ biến khi làm việc với dữ liệu dạng bảng. Mô-đun của Python csv giúp bạn dễ dàng đọc các tệp CSV. Ví dụ :
import csv
# Mở tệp CSV
with open("example.csv", newline='') as csvfile:
# Tạo đối tượng đọc CSV
csvreader = csv.reader(csvfile)
# Đọc và in từng hàng
for row in csvreader:
print(row)
Đầu ra:
['2014', 'Level 3', 'CC71', 'Primary Metal and Metal Product Manufacturing', 'Dollars', 'H34', 'Total income per employee count', 'Financial ratios', '769,400', 'ANZSIC06 groups C211, C212, C213 and C214']
['2014', 'Level 3', 'CC71', 'Primary Metal and Metal Product Manufacturing', 'Dollars', 'H35', 'Surplus per employee count', 'Financial ratios', '48,000', 'ANZSIC06 groups C211, C212, C213 and C214']
['2014', 'Level 3', 'CC71', 'Primary Metal and Metal Product Manufacturing', 'Percentage', 'H36', 'Current ratio', 'Financial ratios', 'C', 'ANZSIC06 groups C211, C212, C213 and C214']
['2014', 'Level 3', 'CC71', 'Primary Metal and Metal Product Manufacturing', 'Percentage', 'H37', 'Quick ratio', 'Financial ratios', 'C', 'ANZSIC06 groups C211, C212, C213 and C214']
['2014', 'Level 3', 'CC71', 'Primary Metal and Metal Product Manufacturing', 'Percentage', 'H38', 'Margin on sales of goods for resale', 'Financial ratios', '12', 'ANZSIC06 groups C211, C212, C213 and C214']
['2014', 'Level 3', 'CC71', 'Primary Metal and Metal Product Manufacturing', 'Percentage', 'H39', 'Return on equity', 'Financial ratios', '19', 'ANZSIC06 groups C211, C212, C213 and C214']
Giải thích: Đoạn mã này đọc từng dòng trong tệp CSV, phân tích thành danh sách giá trị cho mỗi hàng.
Đọc các tệp JSON trong Python
Đọc các tệp JSON (JavaScript Object Notation) được sử dụng rộng rãi để trao đổi dữ liệu. Json Mô-đun của Python cung cấp các phương pháp để đọc các tệp JSON.
Ví dụ:
import json
# Mở tệp JSON
with open("sample1.json", "r") as jsonfile:
# Tải dữ liệu JSON
data = json.load(jsonfile)
print(data)
Đầu ra:
{'fruit': 'Apple', 'size': 'Large', 'color': 'Red'}
Giải thích: Đoạn mã này đọc tệp JSON và tải nội dung của tệp đó vào từ điển Python, có thể được sử dụng để xử lý thêm.
Published on Jun 20, 2025