Python xóa dòng khỏi tệp nếu chứa
Rivers Clothing có một tệp văn bản phẳng, Show Nội dung của river_emps. txt 100:Jane Smith 💬 câu hỏi. Làm thế nào chúng ta sẽ viết mã để loại bỏ dòng này? Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau
Phương pháp 1. Sử dụng hiểu danh sáchVí dụ này sử dụng Khả năng hiểu danh sách để xóa một dòng cụ thể khỏi tệp văn bản phẳng orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = [l for l in orig_lines if not l.startswith('102')] with open('rivers_01.txt', 'w') as fp: print(*new_lines, sep='\n', file=fp) Đoạn mã trên sử dụng Khả năng hiểu danh sách để đọc nội dung của tệp văn bản phẳng thành Danh sách, orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))1. Nếu xuất ra thiết bị đầu cuối, màn hình sau orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))2 Sau đó, Tính năng Hiểu danh sách được sử dụng lại để nối từng phần tử vào Danh sách mới chỉ khi phần tử đó không bắt đầu bằng 102. Nếu xuất ra thiết bị đầu cuối, màn hình sau. orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))3 Như bạn có thể thấy, phần tử bắt đầu bằng 102 đã bị xóa Tiếp theo, một tệp mới, orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))4, được mở ở chế độ ghi ( orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))5) và Danh sách được tạo ở trên được ghi vào tệp với một ký tự xuống dòng ( orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))6) được nối vào mỗi dòng. Nội dung của tập tin được hiển thị dưới đây orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))7 Thủ thuật Python One-Liner 9 - Hiểu danh sách lồng nhau Xem video này trên YouTube Phương pháp 2. Sử dụng danh sách hiểu và cắtVí dụ này sử dụng List Comprehension và Slicing để xóa một dòng cụ thể khỏi tệp văn bản phẳng orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines)) Đoạn mã trên sử dụng Khả năng hiểu danh sách để đọc nội dung của tệp văn bản phẳng thành Danh sách, orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))1. Nếu xuất ra thiết bị đầu cuối, màn hình sau Có thể bạn quan tâmorig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))9 Sau đó Slicing được sử dụng để trích xuất tất cả các phần tử, ngoại trừ phần tử hai (2). Kết quả lưu vào import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] np.savetxt('rivers_03.txt', new_lines, delimiter='\n', fmt='%s')0. Nếu xuất ra thiết bị đầu cuối, màn hình sau orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))7 Như bạn có thể thấy, phần tử thứ hai (2) đã bị xóa Tiếp theo, một tệp mới, import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] np.savetxt('rivers_03.txt', new_lines, delimiter='\n', fmt='%s')2, được mở ở chế độ ghi ( orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))5) và Danh sách được tạo ở trên được ghi vào tệp với một ký tự xuống dòng ( orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))6) được nối vào mỗi dòng. Nội dung của tập tin được hiển thị dưới đây orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))7 Hướng dẫn cơ bản để cắt lát trong Python Xem video này trên YouTube Phương pháp 3. Sử dụng Cắt lát và np. savetxt()Ví dụ này sử dụng hàm Trước khi tiếp tục, vui lòng đảm bảo rằng thư viện NumPy đã được cài đặt để đảm bảo mã này chạy không có lỗi import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] np.savetxt('rivers_03.txt', new_lines, delimiter='\n', fmt='%s') Dòng đầu tiên nhập thư viện NumPy Dòng sau sử dụng tính năng Hiểu danh sách để đọc nội dung của tệp văn bản phẳng vào Danh sách, orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))1. Nếu xuất ra thiết bị đầu cuối, màn hình sau orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))9 Sau đó, Slicing được áp dụng để trích xuất tất cả các phần tử, ngoại trừ phần tử hai (2). Kết quả lưu vào import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] np.savetxt('rivers_03.txt', new_lines, delimiter='\n', fmt='%s')0. Nếu xuất ra thiết bị đầu cuối, màn hình sau orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))7 Như bạn có thể thấy, phần tử thứ hai (2) đã bị xóa Dòng mã cuối cùng gọi
Nội dung của import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] orig_lines.pop(2) np.savetxt('rivers_04.txt', orig_lines, delimiter='\n', fmt='%s')2 hiển thị bên dưới orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))7 Hướng dẫn NumPy - Mọi thứ bạn cần biết để bắt đầu Xem video này trên YouTube Phương pháp 4. Sử dụng pop()Ví dụ này sử dụng hàm import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] orig_lines.pop(2) np.savetxt('rivers_04.txt', orig_lines, delimiter='\n', fmt='%s') Dòng đầu tiên nhập thư viện NumPy Dòng sau sử dụng tính năng Hiểu danh sách để đọc nội dung của tệp văn bản phẳng vào Danh sách, orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))1. Nếu xuất ra thiết bị đầu cuối, màn hình sau orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))9 Sau đó, phương thức Trong trường hợp này, nó là phần tử thứ hai Nếu Danh sách này được xuất ra thiết bị đầu cuối, phần sau sẽ hiển thị orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))7 Như trong Phương pháp 3, kết quả lưu vào tệp văn bản phẳng. Trong trường hợp này, import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] orig_lines.remove('102:Steve Markham') np.savetxt('rivers_05.txt', orig_lines, delimiter='\n', fmt='%s')3. Nội dung giống như trong các ví dụ trước Danh sách Python pop() Xem video này trên YouTube 💡Lưu ý. Hàm Phương pháp 5. Sử dụng loại bỏ()Ví dụ này sử dụng hàm import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] orig_lines.remove('102:Steve Markham') np.savetxt('rivers_05.txt', orig_lines, delimiter='\n', fmt='%s')5 để xóa một dòng cụ thể khỏi tệp văn bản phẳng import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] orig_lines.remove('102:Steve Markham') np.savetxt('rivers_05.txt', orig_lines, delimiter='\n', fmt='%s') Mã này hoạt động chính xác như mã trong Phương pháp 4. Tuy nhiên, thay vì chuyển vị trí của phần tử cần xóa, hàm này yêu cầu nội dung của toàn bộ dòng bạn cần xóa Sau đó, hàm import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] orig_lines.remove('102:Steve Markham') np.savetxt('rivers_05.txt', orig_lines, delimiter='\n', fmt='%s')5 được gọi và truyền một (1) đối số, chỉ mục cần xóa. Trong trường hợp này, nó là phần tử thứ hai. Nếu Danh sách này được xuất ra thiết bị đầu cuối, phần sau sẽ hiển thị orig_lines = [line.strip() for line in open('rivers_emps.txt')] new_lines = orig_lines[0:2] + orig_lines[3:] with open('rivers_02.txt', 'w') as fp: fp.write('\n'.join(new_lines))7 Như đã trình bày trong các ví dụ trước, kết quả được lưu vào một tệp văn bản phẳng. Trong trường hợp này, import numpy as np orig_lines = [line.strip() for line in open('rivers_emps.txt')] orig_lines.remove('102:Steve Markham') np.savetxt('rivers_05.txt', orig_lines, delimiter='\n', fmt='%s')8 Loại bỏ danh sách Python() Xem video này trên YouTube Thưởng. Xóa (các) hàng khỏi DataFrameTệp CSV còn được gọi là tệp văn bản phẳng. Mã này chỉ cho bạn cách dễ dàng xóa một hoặc nhiều hàng khỏi tệp CSV import pandas as pd import numpy as np staff = { 'First' : ['Alice', 'Micah', 'James', 'Mark'], 'Last' : ['Smith', 'Jones', 'Watts', 'Hunter'], 'Rate' : [30, 40, 50, 37], 'Age' : [23, 29, 19, 45]} indexes=['FName', 'LName', 'Rate', 'Age'] df = pd.DataFrame(staff, index=indexes) df1 = df.drop(index=['Age']) df.to_csv('staff.csv', index=False) ✨Thử thách Finxter Tóm lượcBài viết này đã cung cấp năm (5) cách xóa một dòng khỏi tệp để chọn cách phù hợp nhất cho yêu cầu viết mã của bạn |