Python - Hướng Dẫn Đọc Tệp Cho Người Mới Bắt Đầu

Xin chào các bạn, các maestro Python tương lai! ? Hôm nay, chúng ta sẽ bắt đầu hành trình phiêu lưu vào thế giới xử lý tệp trong Python. Là người giáo viên máy tính bạn thân thiện, tôi sẽ hướng dẫn bạn qua các chi tiết về việc đọc tệp. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây – chúng ta sẽ bắt đầu từ đầu và xây dựng lên. Vậy hãy lấy ly đồ uống yêu thích của bạn, thoải mái ngồi và hãy bắt đầu!

Python - Read Files

Mở Tệp Để Đọc

Trước khi bạn có thể đọc một tệp, bạn cần mở nó. Hãy tưởng tượng điều này như là knock vào cửa của một ngôi nhà trước khi vào. Trong Python, chúng ta sử dụng hàm open() để làm điều này. Hãy bắt đầu với một ví dụ đơn giản:

file = open("hello.txt", "r")

Dưới đây là điều gì đang diễn ra:

  • open() là hàm mà chúng ta sử dụng để mở tệp
  • "hello.txt" là tên của tệp mà bạn muốn mở
  • "r" có nghĩa là chúng ta đang mở tệp trong chế độ đọc

Hãy nhớ luôn đóng tệp khi bạn đã hoàn thành:

file.close()

Đọc Tệp Bằng Phương Thức read()

Bây giờ khi chúng ta đã mở tệp của mình, hãy đọc nội dung của nó. Phương thức read() như một máy hút bụi – nó hút up tất cả nội dung trong một lần. Dưới đây là cách chúng ta sử dụng nó:

file = open("hello.txt", "r")
content = file.read()
print(content)
file.close()

Mã này sẽ in ra tất cả nội dung trong tệp. Nó rất đơn giản, nhưng hãy cẩn thận với các tệp lớn – chúng có thể ăn cắp tất cả bộ nhớ của máy tính của bạn!

Đọc Tệp Bằng Phương Thức readline()

Đôi khi, chúng ta muốn đọc tệp của mình dòng trên dòng, như thưởng thức mỗi miếng của một bữa ăn ngon. Đó là nơi phương thức readline() có thể giúp ích:

file = open("hello.txt", "r")
line = file.readline()
while line:
print(line, end='')
line = file.readline()
file.close()

Mã này đọc và in ra mỗi dòng của tệp. Tham số end='' trong hàm print() ngăn chặn việc thêm dòng mới extra, vì readline() giữ lại ký tự dòng mới.

Đọc Tệp Bằng Phương Thức readlines()

Nhưng nếu chúng ta muốn tất cả các dòng, nhưng dưới dạng một danh sách? Đến là thế phương thức readlines():

file = open("hello.txt", "r")
lines = file.readlines()
for line in lines:
print(line, end='')
file.close()

Phương thức này trả về một danh sách nơi mỗi phần tử là một dòng từ tệp. Nó như nhận được một hộp sôcôla, nơi mỗi sôcôla là một dòng văn bản!

Sử Dụng Câu Lệnh "with"

Bây giờ, hãy nói về một lời khuyên neat mà Python cung cấp – câu lệnh with. Nó như có một người bạn trách nhiệm luôn nhớ đóng cửa (tệp) sau khi rời đi:

with open("hello.txt", "r") as file:
content = file.read()
print(content)

Câu lệnh with tự động đóng tệp cho chúng ta khi chúng ta đã hoàn thành. Không cần phải gọi close() nữa!

Đọc Tệp Trong Chế Độ Nhị Phân

Đôi khi, chúng ta cần đọc các tệp không chỉ là văn bản, như hình ảnh hoặc các tệp thực thi. Đối với những này, chúng ta sử dụng chế độ nhị phân:

with open("image.jpg", "rb") as file:
binary_data = file.read()
print(len(binary_data), "bytes read")

Chế độ "rb" mở tệp trong chế độ đọc nhị phân. Nó như đeo kính đặc biệt để thấy các số một và không!

Đọc Dữ Liệu Số Nguyên Từ Tệp

Giả sử chúng ta có một tệp với các số, một số trên mỗi dòng. Dưới đây là cách chúng ta có thể đọc và sử dụng chúng như số nguyên:

with open("numbers.txt", "r") as file:
numbers = [int(line.strip()) for line in file]
print("Tổng số:", sum(numbers))

Mã này đọc mỗi dòng, chuyển đổi nó thành số nguyên, và thêm nó vào một danh sách. Sau đó chúng ta có thể làm toán với số của mình!

Đọc Dữ Liệu Thực Từ Tệp

Tương tự như số nguyên, chúng ta có thể đọc các số thực:

with open("measurements.txt", "r") as file:
measurements = [float(line.strip()) for line in file]
print("Điểm trung bình:", sum(measurements) / len(measurements))

Lần này, chúng ta sử dụng float() thay vì int() để chuyển đổi các chuỗi của chúng ta thành các số thập phân.

Đọc Và Ghi Vào Tệp Bằng Chế Độ "r+"

Đôi khi chúng ta muốn đọc và ghi vào cùng một tệp. Chế độ "r+" cho phép chúng ta làm điều đó:

with open("journal.txt", "r+") as file:
content = file.read()
file.write("\nNew entry: Today I learned about file handling in Python!")
file.seek(0)
updated_content = file.read()
print(updated_content)

Mã này đọc tệp, thêm một dòng mới, sau đó đọc lại để hiển thị các thay đổi.

Đọc Và Ghi Vào Tệp Đồng Thời Trong Python

Đây là một lời khuyên: chúng ta có thể sử dụng hai đối tượng tệp để đọc và ghi đồng thời:

with open("original.txt", "r") as read_file, open("copy.txt", "w") as write_file:
for line in read_file:
write_file.write(line.upper())

Mã này đọc từ một tệp và ghi phiên bản viết hoa vào tệp khác. Nó như có một máy sao chép kêu lớn!

Đọc Tệp Từ Offset Cụ Thể

Đôi khi chúng ta muốn bắt đầu đọc từ một điểm cụ thể trong tệp. Chúng ta có thể làm điều này với phương thức seek():

with open("long_text.txt", "r") as file:
file.seek(50)  # Di chuyển đến byte thứ 50
partial_content = file.read(100)  # Đọc 100 byte từ điểm đó
print(partial_content)

Điều này như đặt một dấu sách vào cuốn sách và bắt đầu đọc từ đó.

Bây giờ, hãy tóm tắt tất cả các phương thức mà chúng ta đã học trong một bảng tiện lợi:

Method Mô Tả
open() Mở tệp
read() Đọc toàn bộ nội dung tệp
readline() Đọc một dòng
readlines() Đọc tất cả các dòng vào danh sách
with câu lệnh Tự động đóng tệp
"rb" chế độ Mở tệp trong chế độ đọc nhị phân
int() / float() Chuyển đổi chuỗi thành số
"r+" chế độ Mở tệp để đọc và ghi
seek() Di chuyển đến vị trí cụ thể trong tệp

Và đó là như vậy, các bạn! Bạn đã học được các khái niệm cơ bản về việc đọc tệp trong Python. Hãy nhớ, luyện tập sẽ làm bạn hoàn hảo, vậy hãy thử các này trên các tệp của riêng bạn. Ai biết, bạn có thể trở thành người siêu anh hùng xử lý tệp Python tiếp theo! Chúc bạn mãi mãi mãi hạnh phúc mãi mãi mãi! ?✨

Credits: Image by storyset