Python có hoạt động theo từng dòng không?

Khi đọc một tệp văn bản, đôi khi chúng ta cần lấy văn bản từng dòng một. Bài viết này sẽ thảo luận về một số công cụ mà Python cung cấp để giúp tạo điều kiện thuận lợi cho việc đọc tệp, từng dòng một. Trong bài viết này, chúng tôi sẽ đề cập

  • Làm cách nào để đọc từng dòng tệp trong Python?
  • Sử dụng với câu lệnh open()
  • Sử dụng phương thức readlines()
  • Sử dụng Mô-đun fileinput cho các tệp lớn
  • Sử dụng cho vòng lặp
  • Sử dụng Vòng lặp While
  • câu hỏi thường gặp

Làm cách nào để đọc từng dòng tệp trong Python?

Để đọc từng dòng tệp trong Python, chúng ta có thể sử dụng một số phương pháp, nhưng bước đầu tiên trong tất cả các phương pháp là mở tệp bằng hàm open(). Hãy xem xét ngắn gọn cách thức hoạt động của chức năng mở này

Chức năng mở

  • Chúng ta có thể chỉ cần mở một tệp ở bất kỳ chế độ cụ thể nào bằng cú pháp sau

mở ("đường dẫn tệp", "chế độ")

  • Thí dụ. Mở tệp văn bản ở chế độ đọc

open("Tài liệu\\kiểm tra. txt", "r")

  • Hàm open mở tệp mong muốn và trả về dưới dạng đối tượng tệp. Nó có thể mở tệp ở nhiều chế độ khác nhau mà chúng ta có thể tùy ý chỉ định bằng cách sử dụng các ký tự sau.  

t

Mặc định, chế độ văn bản

r

Chế độ đọc

w

chế độ ghi

+

Chế độ cập nhật. chế độ đọc + ghi

x

Tạo tệp, trả về lỗi nếu tệp tồn tại

a

Chế độ ghi, nội dung sẽ được thêm vào cuối, tạo tệp nếu nó không tồn tại

b

Chế độ nhị phân

rb

Đọc chế độ nhị phân

wb

Viết chế độ nhị phân

  • Hàm mở lấy đường dẫn hệ thống của tệp văn bản phù hợp trong thư mục mà chúng tôi đang chạy mã từ đó và nếu chúng tôi muốn mở tệp cụ thể ở chế độ đọc, chúng tôi thêm "r" để chỉ định điều đó
  • Ví dụ: nếu bạn đang ở trong C. \Users\91675 khi chúng tôi đang chạy mã python này khi tệp văn bản của chúng tôi có tại C. \Users\91675\Documents\test. txt, đường dẫn hiển thị trong ví dụ trên là đủ. Sẽ hữu ích nếu cung cấp đường dẫn tệp đầy đủ nếu bạn không chắc chắn về các thư mục và đường dẫn hiện tại. Như bạn có thể thấy, dấu gạch chéo ngược kép là bắt buộc trong những trường hợp như vậy vì \t nếu không sẽ hoạt động như một ký tự thoát (tab). Dấu gạch chéo lên thay vì dấu gạch chéo kép cũng sẽ hoạt động

Xử lý ngoại lệ

Nếu không tìm thấy tệp trong đường dẫn hệ thống được đề cập, chúng tôi sẽ nhận được một ngoại lệ FileNotFoundError. Chúng ta cần xử lý ngoại lệ này, chúng ta có thể thực hiện theo cách sau

cố gắng

open("Tài liệu\\test2. txt", "r")

ngoại trừ FileNotFoundError là not_found

print("Tên tập tin hoặc đường dẫn không chính xác")

Bây giờ chúng ta đã biết cách mở tệp của bạn để đọc, chúng ta hãy xem xét một số cách để đọc từng dòng một

Sử dụng câu lệnh “with open()”

Một cách để đọc từng dòng tệp trong Python là sử dụng câu lệnh with open(). Từ khóa “with” tự động đóng tệp sau khi thực thi thành công. Chúng ta đã biết về chức năng mở. Khi chúng tôi mở tệp, chúng tôi có thể sử dụng vòng lặp for để lặp qua tệp theo từng dòng và in từng dòng như được hiển thị

với open("Documents\\test. txt", "r") dưới dạng tệp

cho dòng trong tập tin

in (dòng)

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

Một cách khác để đọc từng dòng tệp trong Python là sử dụng hàm readlines(), hàm này lấy tệp văn bản làm đầu vào và lưu trữ từng dòng riêng lẻ dưới dạng một thành phần trong danh sách. Chúng ta có thể đọc một tệp vào một danh sách hoặc một mảng bằng phương thức readlines() như được hiển thị.  

#Vào danh sách

openFile = open("Documents\\test. txt","r")

asList = openFile. đường đọc ()

in (dưới dạng Danh sách)

mở tập tin. Thoát()

#Vào một mảng

asArray = []

với open("Documents\\test. txt", "r") dưới dạng tệp

asArray = tập tin. đường đọc ()

in (asArray)

Chúng tôi cũng có thể đề cập đến kích thước của dòng mà chúng tôi muốn đọc bên trong đường đọc dưới dạng đường đọc (độ dài) và nó sẽ chỉ đọc dòng cho đến độ dài mong muốn

#đề cập đến kích thước

openFile = open("Documents\\test. txt","r")

asList = openFile. đường đọc(15)

in (dưới dạng Danh sách)

mở tập tin. Thoát()

Vì vậy, nếu tệp openFile chứa một địa chỉ trong một vài dòng, điều này sẽ chỉ trả về 0 đến 15 ký tự của dòng đầu tiên của địa chỉ. Nếu dòng đầu tiên có nhiều ký tự hơn giới hạn quy định, nó sẽ không trả về dòng địa chỉ 2. Đó là bởi vì chúng ta đã giới hạn độ dài mà phương thức readlines() cần đọc.  

Nếu dòng đầu tiên chứa ít ký tự hơn số lượng chúng tôi đã chỉ định, chức năng này sẽ tiếp tục đọc các dòng cho đến khi tổng kích thước của các dòng được đọc cho đến nay không vượt quá giới hạn chúng tôi đã đặt. Ví dụ: nếu chúng tôi có ba dòng chứa bốn ký tự mỗi dòng và chúng tôi chỉ định giới hạn là 6, thì hai dòng đầu tiên sẽ được đọc

Sử dụng vòng lặp “for”

Như chúng ta đã thấy trong ví dụ về câu lệnh with open(), vì hàm open trả về một iterable, nên chúng ta có thể lặp qua tệp theo từng dòng. Trong trường hợp này, chúng ta sẽ chỉ sử dụng vòng lặp for và không sử dụng với câu lệnh open(). Chúng tôi sẽ mở tệp, lặp qua nó và đóng riêng tệp như được hiển thị.  

openFile = open("Documents\\test. txt","r")

cho dòng trong openFile

in (dòng)

mở tập tin. Thoát()

Sử dụng vòng lặp “trong khi”

Chúng ta cũng có thể sử dụng vòng lặp while để đọc từng dòng tệp bằng cách sử dụng hàm readline() bên trong nó, hàm này đọc tệp văn bản theo từng dòng và trả về tất cả các dòng dưới dạng chuỗi.  

openFile = open("Documents\\test. txt","r")

trong khi mở File

dòng  = openFile. dòng đọc ()

in (dòng)

nếu dòng == ""

nghỉ

mở tập tin. Thoát()

Khi đọc xong tất cả các dòng, readLine trả về một chuỗi rỗng. Đó là lý do tại sao ở đây chúng ta ngắt vòng lặp while khi đọc một chuỗi rỗng

Sử dụng Mô-đun fileinput cho các tệp lớn

Vì phương thức readlines() hoạt động bằng cách tải toàn bộ tệp vào bộ nhớ và sau đó lặp lại nó, nếu tệp đủ lớn, việc sử dụng phương thức readlines() có thể dẫn đến MemoryError. Đối với những trường hợp như vậy, chúng ta có thể sử dụng phương thức input() trong mô-đun fileinput, phương thức này đọc từng dòng nhưng không lưu các dòng trong bộ nhớ sau khi đọc xong. Chúng tôi cũng có thể sử dụng phương thức vòng lặp for và while ở đây vì chúng tôi đang đọc từng dòng một và không lưu trữ tất cả dữ liệu

nhập tập tin đầu vào

cho dòng trong fileinput. đầu vào (["Tài liệu\\kiểm tra. txt"])

in (dòng)

câu hỏi thường gặp

Câu hỏi 1. Chúng ta có phải thêm dấu phẩy để biểu thị chức năng mở có hai tham số nếu chúng ta không đề cập đến chế độ bên trong nó không?

Không, không cần thiết phải đề cập đến chế độ cũng như không cần thiết phải thêm dấu phẩy để chỉ ra rằng nó có hai tham số. Mặc dù chúng tôi có thể thêm một số hoặc tất cả những thứ này và nó sẽ hoạt động tốt. Tất cả ba phiên bản này sẽ chạy tốt

openFile = open("Documents\\test. txt","r")

openFile = open("Documents\\test. txt")

openFile = open("Documents\\test. txt")

Câu hỏi 2. Sự khác biệt giữa các phương thức read(), readline() và readlines() là gì?

Mặc dù chúng tôi sử dụng cả ba để đọc tệp văn bản, nhưng có một sự khác biệt trong cách chúng hoạt động để đạt được mục tiêu đó

Phương thức đọc ()

Phương thức readlines()

Phương thức readline()

Đọc toàn bộ văn bản của tệp thành một chuỗi

Đọc tất cả các dòng trong một tệp và trả về danh sách các chuỗi chứa các dòng đã đọc làm phần tử

Đọc từng dòng tệp và trả về tất cả các dòng dưới dạng chuỗi

đề xuất đọc

Bạn có phải là kỹ sư phần mềm đang tìm kiếm các câu hỏi phỏng vấn mã hóa để hỗ trợ chuẩn bị cho cuộc phỏng vấn của mình không?

Bạn đã sẵn sàng để hoàn thành cuộc phỏng vấn viết mã tiếp theo của mình chưa?

Cho dù bạn là Kỹ sư viết mã đang nhắm đến các vai trò Nhà phát triển phần mềm hay Kỹ sư phần mềm hay bạn đang nhắm mục tiêu các vị trí quản lý tại các công ty hàng đầu, IK đều cung cấp các khóa học được thiết kế riêng cho nhu cầu của bạn để giúp bạn chuẩn bị cho cuộc phỏng vấn kỹ thuật

Nếu bạn đang tìm kiếm hướng dẫn và trợ giúp để bắt đầu, hãy đăng ký hội thảo trên web miễn phí của chúng tôi. Là những người tiên phong trong lĩnh vực chuẩn bị phỏng vấn kỹ thuật, chúng tôi đã đào tạo hàng ngàn Kỹ sư phần mềm để vượt qua các cuộc phỏng vấn mã hóa khó khăn nhất và tìm được việc làm tại các công ty mơ ước của họ, chẳng hạn như Google, Facebook, Apple, Netflix, Amazon, v.v.

Bạn có thể chạy từng dòng trong Python không?

Bảng điều khiển Python cho phép thực thi từng dòng lệnh và tập lệnh Python , tương tự như trải nghiệm của bạn với Python Shell.

Chúng ta có thể viết mã Python trong một dòng không?

Python3. Đoạn mã trên có thể được viết bằng một dòng ngắn gọn hơn và tiết kiệm thời gian, đặc biệt là đối với các lập trình viên cạnh tranh.

Dòng hoạt động như thế nào trong Python?

Trong Python, ký tự dòng mới “\n” được sử dụng để tạo một dòng mới . Khi được chèn vào một chuỗi, tất cả các ký tự sau ký tự được thêm vào một dòng mới. Về cơ bản, sự xuất hiện của “\n” chỉ ra rằng dòng kết thúc ở đây và các ký tự còn lại sẽ được hiển thị trong một dòng mới.

Điều gì thực thi từng dòng mã?

CPU thực thi mã thông qua một chu trình được gọi là Tìm nạp, Giải mã và Thực thi. Trình tự này cho thấy cách CPU xử lý từng dòng mã.