Làm cách nào để bạn chọn một dòng từ tệp văn bản trong python?

Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách xóa một dòng cụ thể/cụ thể khỏi tệp văn bản bằng python

Giả sử chúng tôi đã lấy một tệp văn bản có tên TextFile. txt bao gồm một số văn bản ngẫu nhiên. Chúng tôi sẽ xóa một dòng cụ thể [ví dụ dòng 2] khỏi tệp văn bản

Tệp văn bản. txt

Good Morning
This is Tutorials Point sample File
Consisting of Specific
source codes in Python,Seaborn,Scala
Summary and Explanation
Welcome everyone
Learn with a joy

thuật toán

Sau đây là Thuật toán/các bước cần tuân thủ để thực hiện tác vụ mong muốn -

  • Tạo một biến để lưu đường dẫn của tệp văn bản

  • Sử dụng hàm open[][mở một tệp và kết quả là trả về một đối tượng tệp] để mở tệp văn bản ở chế độ chỉ đọc bằng cách chuyển tên tệp và chế độ làm đối số cho nó [Ở đây “r” biểu thị chỉ đọc

with open[inputFile, 'r'] as filedata:
  • Sử dụng hàm readlines[] [trả về một danh sách với mỗi dòng trong tệp được biểu thị dưới dạng một mục danh sách. Để giới hạn số dòng được trả về, hãy sử dụng đối số gợi ý. Không còn dòng nào được trả về nếu tổng số byte được trả về vượt quá số lượng đã chỉ định] để lấy danh sách các dòng của tệp văn bản đầu vào đã cho

file.readlines[hint]
  • Tạo một biến [giữ số dòng] và khởi tạo giá trị của nó thành 1

  • Sử dụng hàm open[][mở một tệp và kết quả là trả về một đối tượng tệp] để mở tệp văn bản đã cho ở chế độ ghi bằng cách chuyển tên tệp và chế độ làm đối số cho nó [Ở đây “w” đại diện cho chế độ ghi]

with open[inputFile, 'w'] as filedata:
  • Duyệt qua từng dòng của tệp bằng vòng lặp for

  • Nhập số dòng cần xóa dưới dạng đầu vào động bằng cách sử dụng hàm input[] [Hàm input[] đọc một dòng từ đầu vào [từ người dùng], chuyển đổi nó thành một chuỗi bằng cách loại bỏ dòng mới ở cuối và trả về nó. Khi gặp phải EOF, một ngoại lệ EOFError sẽ được đưa ra] và nhập truyền nó thành một số nguyên bằng cách sử dụng hàm int[][chuyển đổi thành một số nguyên]

  • Sử dụng câu lệnh điều kiện if, xác định xem chỉ mục dòng [số dòng] có khác với số dòng xóa đã cho hay không

  • Nếu điều kiện là đúng, thì hãy sử dụng hàm write[] [ghi một văn bản đã chỉ định vào một tệp. Văn bản được cung cấp sẽ được chèn tùy thuộc vào chế độ tệp và vị trí luồng] để ghi dòng tương ứng đó vào một tệp

  • Tăng giá trị của giá trị chỉ mục dòng [số dòng] lên 1

  • In một số văn bản ngẫu nhiên nếu dòng cụ thể đã được xóa thành công

  • Mở lại tệp đầu vào ở chế độ đọc bằng hàm open[] để in nội dung tệp sau khi xóa dòng cụ thể đã cho

  • Duyệt qua từng dòng của tệp bằng vòng lặp for

  • In từng dòng của tệp văn bản

  • Đóng tệp đầu vào bằng hàm close[] [dùng để đóng tệp đã mở]

Ví dụ

Chương trình sau để xóa một dòng đã cho khỏi tệp văn bản và in nội dung tệp kết quả sau khi xóa dòng đó -

đầu ra

Khi thực thi, chương trình trên sẽ tạo đầu ra sau -

Enter the line number to be deleted = 2
Line 2 is deleted successfully

File Content After Deletion :
Good Morning
Consisting of Specific
source codes in Python,Seaborn,Scala
Summary and Explanation
Welcome everyone
Learn with a joy

Chúng tôi đã cung cấp cho chương trình của mình một tệp văn bản chứa một số nội dung ngẫu nhiên và sau đó mở nó ở chế độ đọc. Chúng tôi đã tạo một biến để lưu trữ số dòng hiện tại và khởi tạo nó thành 1, số dòng bắt đầu. Chúng tôi duyệt qua tệp cho đến khi đến cuối, sau đó kiểm tra xem liệu số người dùng nhập vào có tương đương với số dòng sẽ bị xóa không. Nếu sai ta không cần xóa bỏ dòng đó mà ghi vào file. Thay vì xóa dòng đã chỉ định, chúng tôi thêm các dòng còn lại vào tệp, do đó dòng bị xóa không xuất hiện trong tệp kết quả. Đối với mỗi dòng, giá trị của số dòng được tăng thêm một

Trong bài viết này, chúng ta đã tìm hiểu về cách xóa một dòng cụ thể khỏi tệp văn bản và lưu các dòng còn lại trong cùng một bài viết. Cùng với đó chúng ta đã học về cách duyệt toàn bộ tệp văn bản từ đầu đến cuối cũng như cách đọc và ghi dữ liệu vào tệp văn bản

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[] -

Ví 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

Ví 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

Ví 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 -

________số 8

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

Ví 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 -

________số 8

Sử dụng Trình quản lý bối 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

Ví 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

Chủ Đề