Cách đọc một dòng từ tệp trong Python

Có nhiều cách khác nhau để đọc tệp trong Python. Các phương pháp phổ biến nhất để đọc tệp theo từng dòng trong Python sẽ được đề cập

Sử dụng phương thức readlines()

Sử dụng phương pháp này, một tệp sẽ được mở và nội dung của nó sẽ được chia thành các dòng riêng biệt. Phương thức này cũng trả về danh sách mọi dòng trong tệp. Để đọc toàn bộ tệp một cách hiệu quả, chúng ta có thể sử dụng hàm readlines()

Sau đây là một ví dụ để loại bỏ các tệp hoán đổi bằng cách sử dụng tệp. phương thức kết thúc() -

Thí dụ

Sau đây là một ví dụ để đọc từng dòng tệp văn bản bằng phương thức readlines() -

đầu ra

Sau đây là một đầu ra của đoạn mã trên

['Welcome to Tutorials Point\n', 'This is a new file.\n', 'Reading a file line by line using Python\n', 'Thank You!']

Sử dụng phương thức readline()

Dòng đầu tiên của tệp văn bản có thể được lấy bằng phương thức readline(). Khi chúng ta sử dụng phương thức readline() để đọc file, so với readlines() thì chỉ có một dòng được in ra

Thí dụ

Sau đây là một ví dụ để đọc một dòng của tệp văn bản bằng phương thức readline() -

đầu ra

Hàm readline() chỉ trả về một dòng văn bản. Nếu bạn muốn đọc tất cả các dòng cùng một lúc, hãy sử dụng readline()

Sau đây là đầu ra của đoạn mã trên -

Welcome to Tutorials Point

Lưu ý − Phương thức readline(), trái ngược với phương thức tương đương, chỉ trích xuất một dòng từ một tệp. Một ký tự dòng mới ở cuối cũng sẽ được thêm vào cuối chuỗi bằng phương thức realine()

Chúng tôi cũng có thể xác định độ dài cho dòng được trả về bằng phương thức readline(). Không có kích thước, toàn bộ dòng sẽ được đọc

Sử dụng vòng lặp While

Bạn có thể sử dụng vòng lặp while để đọc từng dòng nội dung của tệp được chỉ định. Trước tiên hãy mở tệp ở chế độ đọc bằng hàm open() để thực hiện điều đó. Sử dụng trình xử lý tệp open() được trả về bên trong vòng lặp while để đọc các dòng

Vòng lặp while sử dụng phương thức readline() của Python để đọc các dòng. Khi vòng lặp for được sử dụng, vòng lặp sẽ kết thúc khi đến cuối tệp. Tuy nhiên, với vòng lặp while, đây không phải là trường hợp và bạn phải liên tục kiểm tra xem tệp đã đọc xong chưa. Do đó, bạn có thể sử dụng câu lệnh break để kết thúc vòng lặp while - bất cứ khi nào phương thức readline() trả về một chuỗi rỗng

Thí dụ

Sau đây là một ví dụ để đọc từng dòng một tệp văn bản bằng cách sử dụng vòng lặp while -

file = open("TutorialsPoint.txt", "r") while file: line = file.readline() print(line) if line == "": break file.close()

đầu ra

Sau đây là đầu ra của đoạn mã trên -

Welcome to Tutorials Point
This is a new file.
Reading a file line by line using Python
Thank You!

Sử dụng vòng lặp

Bắt đầu bằng cách mở tệp ở chế độ chỉ đọc bằng hàm Python open(). Một trình xử lý tệp sẽ được trả về bởi hàm open(). Trong vòng lặp for của bạn, hãy sử dụng trình xử lý tệp để đọc từng dòng từ tệp được cung cấp cùng một lúc. Khi hoàn tất, sử dụng hàm close() để đóng trình xử lý tệp

Thí dụ

Sau đây là một ví dụ để đọc từng dòng một tệp văn bản bằng cách sử dụng vòng lặp for -

file = open("TutorialsPoint.txt", "r") for line in file: print(line) file.close()

đầu ra

Sau đây là đầu ra của đoạn mã trên -

Welcome to Tutorials Point
This is a new file.
Reading a file line by line using Python
Thank You!

Sử dụng Trình quản lý ngữ cảnh

Bất kỳ ngôn ngữ lập trình nào cũng yêu cầu một cách tiếp cận tinh tế để quản lý tệp. Phải cẩn thận khi xử lý tệp để tránh tham nhũng. Điều quan trọng cần nhớ là đóng tài nguyên sau khi mở tệp. Ngoài ra, Python có giới hạn về số lượng tệp có thể được mở cùng một lúc. Python cung cấp cho chúng tôi Trình quản lý ngữ cảnh để giúp chúng tôi tránh những sự cố này

Việc xử lý tệp sẽ an toàn nếu Python sử dụng câu lệnh with

  • Để truy cập các tệp tài nguyên một cách an toàn, hãy sử dụng câu lệnh with
  • Khi Python bắt gặp khối with, nó sẽ tạo một ngữ cảnh mới
  • Python tự động đóng tài nguyên tệp sau khi khối chạy xong
  • Phạm vi của ngữ cảnh tương tự như câu lệnh with

Thí dụ

Sau đây là một ví dụ để đọc từng dòng một tệp văn bản bằng cách sử dụng với câu lệnh -

đầu ra

Lần này, các dòng của tệp được đọc bằng vòng lặp for. Khi chúng tôi sử dụng Trình quản lý ngữ cảnh, tệp sẽ tự đóng bất cứ khi nào trình xử lý của nó thoát khỏi phạm vi. Câu lệnh with đảm bảo rằng tài nguyên được xử lý đúng cách khi hàm đã hoàn thành công việc với tệp

Rất nhiều câu trả lời khác ở đây, nhưng để trả lời chính xác câu hỏi bạn đã hỏi (trước khi @MarkAmery chỉnh sửa câu hỏi ban đầu và thay đổi ý nghĩa)

>>> f = open('myfile.txt')
>>> data = f.read()
>>> # I'm assuming you had the above before asking the question
>>> first_line = data.split('\n', 1)[0]

Nói cách khác, nếu bạn đã đọc trong tệp (như bạn đã nói) và có một khối dữ liệu lớn trong bộ nhớ, thì để lấy dòng đầu tiên từ tệp đó một cách hiệu quả, hãy thực hiện tách() trên ký tự xuống dòng, một lần

Lưu ý rằng điều này không bao gồm ký tự \n ở cuối dòng, nhưng tôi cho rằng bạn không muốn nó (và một tệp một dòng thậm chí có thể không có). Cũng lưu ý rằng mặc dù nó khá ngắn và nhanh, nhưng nó tạo ra một bản sao của dữ liệu, vì vậy đối với một khối bộ nhớ thực sự lớn, bạn có thể không coi nó là "hiệu quả". Như mọi khi, nó phụ thuộc vào

Phương pháp nào đọc một dòng từ một tệp?

Phương thức readline đọc một dòng từ tệp và trả về dưới dạng chuỗi.

Hàm nào được sử dụng để đọc một dòng từ tệp trong Python?

Phương pháp 1. Đọc từng dòng tệp bằng cách sử dụng readlines() . Chúng ta có thể lặp qua danh sách và loại bỏ ký tự '\n' dòng mới bằng cách sử dụng hàm strip(). Thí dụ. Python3.