Khi mã hóa bằng Python, có thể đôi khi bạn cần mở và đọc nội dung của tệp văn bản.
May mắn thay, có một số cách để làm điều này trong Python.
Ngôn ngữ này có nhiều hàm, phương thức và từ khóa tích hợp sẵn mà bạn có thể sử dụng để tạo, viết, đọc và xóa các tệp văn bản.
Trong bài viết này, bạn sẽ tìm hiểu những cách phổ biến nhất để đọc tệp. Với sự trợ giúp của các ví dụ mã hóa, bạn sẽ biết cách đọc từng dòng một tệp văn bản.
Đây là những gì chúng tôi sẽ đề cập:
- Cách mở một tệp văn bản bằng
open()
chức năng - Cách đọc một tệp văn bản bằng
read()
phương pháp - Cách đọc một tệp văn bản bằng
readline()
phương pháp - Cách đọc tệp văn bản bằng cách sử dụng
readlines()
phương pháp - Cách đọc một tệp văn bản bằng cách sử dụng một
for
vòng
Hãy đi sâu vào!
Cách mở tệp văn bản bằng cách sử dụng open()
Chức năng trong Python
Trước khi bạn bắt đầu đọc một tệp văn bản bằng Python, trước tiên bạn cần mở nó.
Để mở một tệp văn bản, hãy sử dụng công cụ tích hợp sẵn open()
chức năng.
Cú pháp chung cho open()
chức năng trông như thế này:
open("filename", "mode")
Các open()
hàm chấp nhận nhiều đối số, nhưng trong ví dụ này, tôi chỉ tập trung vào hai đối số: filename
và mode
.
Hãy chia nhỏ cú pháp.
Đối số bắt buộc đầu tiên mà open()
chức năng chấp nhận là filename
đại diện cho đường dẫn đầy đủ của tên tệp bạn muốn mở.
Khi chỉ định đường dẫn của tệp bạn muốn mở, bạn cần biết tệp đó nằm ở đâu trong cấu trúc thư mục của bạn.
Ví dụ: nếu tệp văn bản bạn muốn mở và tệp hiện tại của bạn có mã Python nằm trong cùng một thư mục, bạn chỉ cần tham chiếu tên và phần mở rộng của nó.
Giả sử bạn có một thư mục có tên projects
.
Bên trong nó, bạn có hai tệp, main.py
là tệp mà bạn viết mã Python của mình và example.txt
, đây là tệp bạn muốn mở. Tập tin đó chứa các nội dung sau:
I absolutely love coding!
I am learning to code for free with freeCodeCamp!
Cả hai tệp đều ở cùng cấp độ trong thư mục, vì vậy đây là cách bạn tham khảo example.txt
khi sử dụng open()
chức năng:
open("example.txt")
Đối số tùy chọn thứ hai mà open()
chức năng chấp nhận là mode
. Nó chỉ định xem bạn có muốn đọc ("r"
), viết ("w"
) hoặc nối thêm ("a"
) đến filename
.
Chế độ mặc định là đọc ("r"
) cách thức.
Vì vậy, để mở và đọc example.txt
bạn có thể tùy ý sử dụng "r"
để đại diện cho chế độ bạn muốn sử dụng:
open("example.txt", mode="r")
Như đã nói, bạn không cần phải viết từ khóa mode
.
Thay vào đó, bạn có thể lược bỏ nó và chỉ sử dụng chữ cái "r"
– nó vẫn sẽ có kết quả tương tự:
open("example.txt","r")
Cuối cùng, bạn có thể bỏ qua chữ cái "r"
hoàn toàn vì nó là chế độ mặc định:
open("example.txt")
Khi bạn chạy mã từ ví dụ trên, nó không làm gì cả.
Bạn đã hoàn thành bước đầu tiên, đó là mở tệp văn bản, nhưng bạn chưa đọc và chưa xem nội dung của nó.
Cách đọc một tệp văn bản bằng cách sử dụng read()
Phương thức trong Python
Để đọc nội dung của example.txt
trước tiên hãy lưu mã mà chúng ta đã viết trong phần trước vào một biến có tên file
:
file = open("example.txt")
Sau đó, hãy gọi các read()
phương pháp trên file
và in kết quả ra bàn điều khiển:
file = open("example.txt")
print(file.read())
# output
# I absolutely love coding!
# I am learning to code for free with freeCodeCamp!
Bây giờ, bạn có thể đọc nội dung của example.txt
!
Các read()
đọc tất cả nội dung dưới dạng một chuỗi, điều này hữu ích khi làm việc với các tệp nhỏ hơn không có nhiều nội dung trong tệp văn bản.
Như đã nói, đoạn mã trên thiếu một cái gì đó.
Sau khi đọc xong tệp văn bản, bạn cần đóng tệp đó lại. Để làm điều đó, hãy sử dụng close()
phương pháp. Đảm bảo không bỏ qua bước này vì quên đóng tệp có thể gây ra lỗi trong mã của bạn!
file = open("example.txt")
print(file.read())
# close file
file.close()
Bây giờ, đóng tệp văn bản là một cách thực hành tốt, nhưng đó là điều mà bạn có thể dễ quên thực hiện – không phải lúc nào bạn cũng có thể nhớ gọi close()
phương thức trên tệp.
Có một sự thay thế có sẵn.
Các with
từ khóa đảm bảo rằng tệp được tự động đóng khi thực thi mã.
Cú pháp chung cho with
từ khóa khi được sử dụng với open()
chức năng như sau:
with open("filename") as variable:
# do something with variable
Vì vậy, đây là cách bạn sẽ viết lại mã từ ví dụ trước bằng cách sử dụng with
từ khóa thay vì close()
phương pháp:
with open("example.txt") as file:
print(file.read())
# output
# I absolutely love coding!
# I am learning to code for free with freeCodeCamp!
Cách đọc một tệp văn bản bằng cách sử dụng readline()
Phương thức trong Python
Nếu bạn chỉ muốn đọc một dòng riêng lẻ từ tệp văn bản, hãy sử dụng readline()
phương pháp:
with open("example.txt") as file:
print(file.readline())
# output
# I absolutely love coding!
tập tin văn bản example.txt
có hai dòng bên trong nó, nhưng readline()
phương thức chỉ đọc một dòng từ tệp và trả về nó.
Các readline()
phương thức cũng thêm một ký tự xuống dòng ở cuối chuỗi.
Bạn có thể tùy chọn vượt qua một size
tranh luận với readline()
phương thức, chỉ định độ dài của dòng được trả về và số byte tối đa mà nó sẽ đọc.
with open("example.txt") as file:
print(file.readline(10))
# output
# I absolute
Cách đọc một tệp văn bản bằng cách sử dụng readlines()
Phương thức trong Python
Các readlines()
phương pháp đọc tất cả các dòng từ một tệp, đi qua từng dòng tệp.
Sau đó, nó trả về một danh sách các chuỗi:
with open("example.txt") as file:
print(file.readlines())
# output
# ['I absolutely love coding!\n', 'I am learning to code for free with freeCodeCamp!']
Các readlines()
đọc tất cả các dòng trong một lần và lưu trữ từng dòng từ tệp văn bản dưới dạng một mục danh sách bên trong danh sách. Các readlines()
phương thức cũng đã thêm một ký tự xuống dòng \n
ở cuối mỗi dòng.
Cách đọc tệp văn bản bằng cách sử dụng for
Vòng lặp trong Python
Một cách khác để đọc từng dòng tệp trong Python là sử dụng for
vòng lặp, đây là cách tiếp cận Pythonic nhất để đọc tệp:
with open("example.txt") as file:
for item in file:
print(item)
# output
# I absolutely love coding!
# I am learning to code for free with freeCodeCamp!
Các open()
hàm trả về một đối tượng có thể lặp lại.
Các for
vòng lặp được ghép nối với in
từ khóa – chúng lặp lại đối tượng tệp lặp lại được trả về và đọc từng dòng bên trong nó.
Phần kết luận
Hy vọng rằng, bài viết này đã giúp bạn hiểu cách đọc từng dòng tệp trong Python bằng cách sử dụng read()
, readline()
và readlines()
phương pháp và một for
vòng.
Cảm ơn bạn đã đọc và chúc bạn mã hóa vui vẻ!