Sự khác biệt giữa read(), readline() và readlines() trong python?

Câu hỏi của em như tiều đề trên. Ai giải thích dùm em với. cho em xin luôn ví dụ với ạ. Em cảm ơn!

Xét file với tên là text.txt và nội dung

aaa
bbb
ccc

read() là hàm dùng đọc hết nội dung của một file, sau khi đọc con trỏ file sẽ ở vị trí kết thúc. Có nghĩa là bạn read cái kiểu gì nữa cũng chỉ ra chuỗi rỗng ''.

>>> f = open('text.txt')
>>> content = f.read()
>>> f.close()
>>> content
'aaa\nbbb\nccc'
>>> print(content)
aaa
bbb
ccc

Với readline, đây là một phương thức giúp bạn đọc 1 dòng, có nghĩa nó sẽ không tham lam như read một phát gom sạch nội dung mà nó lấy từng dòng một. Và đương nhiên, khi hết một dòng thì bạn không thể đọc lại dòng đó nữa trừ khi bạn làm một cái gì đó khác.

>>> f = open('text.txt')
>>> print(f.readline())
aaa

>>> print(f.readline())
bbb

>>> print(f.readline())
ccc
>>> print(f.readline())

>>> f.close() # hết rồi, nên chả có gì, thôi thì đóng

Thằng cha readlines này cũng tham y chang thằng read với tư tưởng gom sạch. Nhưng gác một cái, nó sẽ tách mỗi dòng thành một list.

>>> f = open('text.txt')
>>> lst_content = f.readlines()
>>> lst
['aaa\n', 'bbb\n', 'ccc']
>>> lst[0]
'aaa\n'
>>> lst[1]
'bbb\n'
>>> lst[2]
'ccc'
>>> print(lst[0])
aaa

>>> print(lst[1])
bbb

>>> print(lst[2])
ccc
>>> f.close()

Thôi, mình thấy bạn hỏi nhiều câu đã có source rồi, lần sau ráng tự đọc trước. Đừng hỏi nhiều như rứa. Mình hôm nay rảnh nên gõ nhiều cho bạn thôi, và không phải ai cũng rảnh như mình đâu.

6 Likes

Cảm ơn bạn nhé:grinning:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?