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ở]
Thí 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
Ví dụ, trong suốt chương trình này, chúng tôi sẽ sử dụng tệp văn bản có tên tháng. txt mà các thao tác xóa khác nhau sẽ được thực hiện trên đó
Phương pháp 1. Xóa một dòng bằng một vị trí cụ thể
Trong phương pháp này, tệp văn bản được đọc từng dòng bằng cách sử dụng readlines[]. Nếu một dòng có vị trí giống với vị trí cần xóa thì nó không được ghi trong tệp văn bản mới tạo.
Thí dụ
Python3
with open[inputFile, 'r'] as filedata:10
with open[inputFile, 'r'] as filedata:11
with open[inputFile, 'r'] as filedata:12
with open[inputFile, 'r'] as filedata:13
with open[inputFile, 'r'] as filedata:14
with open[inputFile, 'r'] as filedata:15
Deleted0______51____52____53
Deleted4
Deleted5
Deleted6
Deleted7
Deleted8
Deleted9
Deleted8
Deleted1____52
Deleted3
Deleted8
Deleted8
Deleted6
Deleted8
Deleted8
Deleted2
Deleted0
Deleted0
Deleted8
Deleted3
Deleted8
Deleted1____52____53____54
Deleted5
with open[inputFile, 'r'] as filedata:100
with open[inputFile, 'r'] as filedata:101
with open[inputFile, 'r'] as filedata:102
with open[inputFile, 'r'] as filedata:103
with open[inputFile, 'r'] as filedata:104
with open[inputFile, 'r'] as filedata:105
with open[inputFile, 'r'] as filedata:106
with open[inputFile, 'r'] as filedata:107
with open[inputFile, 'r'] as filedata:108
with open[inputFile, 'r'] as filedata:109
with open[inputFile, 'r'] as filedata:108
with open[inputFile, 'r'] as filedata:111
with open[inputFile, 'r'] as filedata:112
Deleted2
with open[inputFile, 'r'] as filedata:114
with open[inputFile, 'r'] as filedata:15
with open[inputFile, 'r'] as filedata:116
with open[inputFile, 'r'] as filedata:117
with open[inputFile, 'r'] as filedata:108
Deleted8____1120
Deleted2
Deleted0
Deleted0____1124____53____1126
with open[inputFile, 'r'] as filedata:127
Deleted0
with open[inputFile, 'r'] as filedata:129
with open[inputFile, 'r'] as filedata:15
Deleted0____1124____53____1134
with open[inputFile, 'r'] as filedata:127
đầu ra
Deleted
'5-May' được viết trên dòng thứ 5 đã bị xóa như hình bên dưới
Phương pháp 2. Xóa một dòng bằng văn bản khớp chính xác với dòng đó
Trong phương pháp này, sau khi đọc tệp, mỗi dòng được kiểm tra xem nó có khớp chính xác với văn bản đã cho không. Nếu không khớp thì ghi vào file mới
Python3
with open[inputFile, 'r'] as filedata:136
with open[inputFile, 'r'] as filedata:137
with open[inputFile, 'r'] as filedata:138
with open[inputFile, 'r'] as filedata:139
with open[inputFile, 'r'] as filedata:14
with open[inputFile, 'r'] as filedata:15
Deleted0______51____52____53
Deleted4
Deleted5
Deleted6
Deleted7
Deleted8
Deleted1____52
Deleted3
Deleted8
Deleted1____52____53
with open[inputFile, 'r'] as filedata:158
Deleted5
with open[inputFile, 'r'] as filedata:100
with open[inputFile, 'r'] as filedata:101
with open[inputFile, 'r'] as filedata:102
with open[inputFile, 'r'] as filedata:103
with open[inputFile, 'r'] as filedata:104
with open[inputFile, 'r'] as filedata:105
with open[inputFile, 'r'] as filedata:106
with open[inputFile, 'r'] as filedata:107
with open[inputFile, 'r'] as filedata:108
Deleted09
with open[inputFile, 'r'] as filedata:108
Deleted11
with open[inputFile, 'r'] as filedata:108
with open[inputFile, 'r'] as filedata:111
Deleted14
Deleted15
Deleted16
Deleted2
Deleted18
with open[inputFile, 'r'] as filedata:15
with open[inputFile, 'r'] as filedata:116
with open[inputFile, 'r'] as filedata:117
Deleted0____1124____53____1126
with open[inputFile, 'r'] as filedata:127
with open[inputFile, 'r'] as filedata:129
with open[inputFile, 'r'] as filedata:15
Deleted0____1124____53____1134
with open[inputFile, 'r'] as filedata:127
đầu ra
Deleted
Dòng có chính xác '8-August' đã bị xóa như hình.
Phương pháp 3. Sử dụng logic tùy chỉnh
ví dụ 1. Xóa các dòng chứa một mẫu đã chỉ định
Tại đây, các dòng chứa mẫu chuỗi đã chỉ định sẽ bị xóa. Mẫu có thể không nhất thiết phải là toàn bộ dòng chính xác
Python3
Deleted34
Deleted35
Deleted36
Deleted37
Deleted38
with open[inputFile, 'r'] as filedata:14
with open[inputFile, 'r'] as filedata:15
Deleted0______51____52____53
Deleted4
Deleted5
Deleted6
Deleted7
Deleted8
Deleted1____52
Deleted3
Deleted8
Deleted1____52
Deleted3____557
Deleted5
with open[inputFile, 'r'] as filedata:100
with open[inputFile, 'r'] as filedata:101
with open[inputFile, 'r'] as filedata:102
with open[inputFile, 'r'] as filedata:103
with open[inputFile, 'r'] as filedata:104
with open[inputFile, 'r'] as filedata:105
with open[inputFile, 'r'] as filedata:106
with open[inputFile, 'r'] as filedata:107
with open[inputFile, 'r'] as filedata:108
Deleted68
with open[inputFile, 'r'] as filedata:108
Deleted70
with open[inputFile, 'r'] as filedata:108
with open[inputFile, 'r'] as filedata:111
Deleted73
Deleted74
with open[inputFile, 'r'] as filedata:127
Deleted2
Deleted2
Deleted78
Deleted0
with open[inputFile, 'r'] as filedata:15
with open[inputFile, 'r'] as filedata:116
with open[inputFile, 'r'] as filedata:117
Deleted0____1124____53____1126
with open[inputFile, 'r'] as filedata:127
with open[inputFile, 'r'] as filedata:129
with open[inputFile, 'r'] as filedata:15
Deleted0____1124____53____1134
with open[inputFile, 'r'] as filedata:127
đầu ra
Deleted
Tất cả các dòng chứa mẫu 'ber' như '9-Tháng Chín', '10-Tháng Mười', '11-Tháng Mười Một', '12-Tháng Mười Hai' đã bị xóa
ví dụ 2. Xóa các dòng có điều kiện
Nếu chúng tôi có một điều kiện là các dòng trong tệp của chúng tôi phải có độ dài tối thiểu. Vì vậy, ví dụ sau đây cho thấy cách xóa các dòng không có độ dài tối thiểu được chỉ định