Xóa dòng cuối cùng trong tệp 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ở]

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

Deleted
0______51____52____53
Deleted
4
Deleted
5
Deleted
6
Deleted
7

Deleted
8
Deleted
9

Deleted
8
Deleted
1____52
Deleted
3

Deleted
8

Deleted
8
Deleted
6

Deleted
8
Deleted
8
Deleted
2
Deleted
0

Deleted
0

Deleted
8
Deleted
3

Deleted
8
Deleted
1____52____53____54
Deleted
5
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
Deleted
2
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
Deleted
8____1120
Deleted
2
Deleted
0

Deleted
0____1124____53____1126
with open[inputFile, 'r'] as filedata:
127

Deleted
0

with open[inputFile, 'r'] as filedata:
129
with open[inputFile, 'r'] as filedata:
15

Deleted
0____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

Deleted
0______51____52____53
Deleted
4
Deleted
5
Deleted
6
Deleted
7

Deleted
8
Deleted
1____52
Deleted
3

 

Deleted
8
Deleted
1____52____53
with open[inputFile, 'r'] as filedata:
158
Deleted
5
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
Deleted
09

with open[inputFile, 'r'] as filedata:
108
Deleted
11

with open[inputFile, 'r'] as filedata:
108
with open[inputFile, 'r'] as filedata:
111
Deleted
14
Deleted
15
Deleted
16
Deleted
2
Deleted
18
with open[inputFile, 'r'] as filedata:
15

with open[inputFile, 'r'] as filedata:
116
with open[inputFile, 'r'] as filedata:
117

Deleted
0____1124____53____1126
with open[inputFile, 'r'] as filedata:
127

with open[inputFile, 'r'] as filedata:
129
with open[inputFile, 'r'] as filedata:
15

Deleted
0____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




Deleted
34

Deleted
35

Deleted
36

 

Deleted
37

Deleted
38

with open[inputFile, 'r'] as filedata:
14
with open[inputFile, 'r'] as filedata:
15

Deleted
0______51____52____53
Deleted
4
Deleted
5
Deleted
6
Deleted
7

Deleted
8
Deleted
1____52
Deleted
3

 

Deleted
8
Deleted
1____52
Deleted
3____557
Deleted
5
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
Deleted
68

with open[inputFile, 'r'] as filedata:
108
Deleted
70

with open[inputFile, 'r'] as filedata:
108
with open[inputFile, 'r'] as filedata:
111
Deleted
73
Deleted
74
with open[inputFile, 'r'] as filedata:
127
Deleted
2
Deleted
2
Deleted
78
Deleted
0
with open[inputFile, 'r'] as filedata:
15

with open[inputFile, 'r'] as filedata:
116
with open[inputFile, 'r'] as filedata:
117

Deleted
0____1124____53____1126
with open[inputFile, 'r'] as filedata:
127

with open[inputFile, 'r'] as filedata:
129
with open[inputFile, 'r'] as filedata:
15

Deleted
0____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

Chủ Đề