Ví dụ mình có tập tin abc.txt có nội dung như sau,
Python
C/C++
Java
Pascal
Cho mình hỏi làm sao để đọc từng dòng một trong tập tin trên sử dụng ngôn ngữ lập trình Python?
Ví dụ mình có tập tin abc.txt có nội dung như sau,
Python
C/C++
Java
Pascal
Cho mình hỏi làm sao để đọc từng dòng một trong tập tin trên sử dụng ngôn ngữ lập trình Python?
Có hai cách bạn có thể sử dụng để đọc từng dòng từ một tập tin trong Python, cụ thể mỗi cách sẽ tùy vào từng trường hợp mà bạn muốn xử lý dữ liệu sau khi đã đọc lên sao cho phù hợp với chương trình của bạn.
Cách thứ nhất - đọc từng dòng, xử lý luôn dòng sau khi đã đọc rồi mới chuyển qua đọc dòng tiếp theo.
with open('<đường dẫn tới file cần đọc>') as file:
for line in file:
<xử lý dòng ngay sau khi đã đọc>
Ví dụ: đọc từng dòng trong tập tin abc.txt
của bạn và đánh số thứ tự tăng dần ở mỗi dòng, sau đó xuất kết quả ra màn hình,
with open('abc.txt') as file:
i = 1
for line in file:
result = str(i) + ' - ' + line
print result
i += 1
Kết quả hiển thị trên màn hình,
1 - Python
2 - C/C++
3 - Java
4 - Pascal
Ưu điểm của cách thứ nhất: Trong trường hợp tập tin chứa hàng ngàn đến hàng triệu dòng, việc đọc từng dòng, xử lý ngay trên dòng đó rồi mới chuyển qua đọc dòng tiếp theo rất hiệu quả về vấn đề thời gian thực thi và tránh tình trạng tràn bộ nhớ.
Cách thứ hai - đọc từng dòng, lưu tất cả các dòng đã đọc được vào
list
, rồi mới xử lý.
with open('<đường dẫn tới file cần đọc>') as file:
noi_dung_file = file.readlines()
Ví dụ: đọc tập tin abc.txt
của bạn, lưu vào list
rồi xuất ra phần tử thứ 2 trong list
:
# -*- coding: utf-8 -*-
with open('abc.txt') as file:
noi_dung_file = file.readlines()
print noi_dung_file[1] # Phần tử thứ hai trong danh sách
Kết quả hiển thị ra màn hình,
C/C++
Nhược điểm của cách thứ hai: Đối với tập tin có kích thước rất lớn hàng triệu dòng, sử dụng cách này có thể gây lỗi tràn bộ nhớ, do đó cách này chỉ phù hợp với tập tin có kích thước nhỏ.
bạn dùng phương thức readline() để đọc từng dòng file trong Python là được mà. Tham khảo link dưới : Đọc file trong python | Lập trình căn bản - học lập trình theo phong cách Nhật Bản!