Cách xóa dòng trong Python IDLE

Ứng dụng hiển thị File Removed. thông điệp. Khi bạn nhìn vào thư mục ban đầu chứa ChangedFile. csv, bạn thấy rằng tệp đã biến mất

Nhiệm vụ có vẻ đơn giản trong trường hợp này, và đó là. Tất cả những gì bạn cần làm để xóa tệp là gọi os. remove[] với tên tệp và đường dẫn phù hợp [Python mặc định cho thư mục hiện tại, vì vậy bạn không cần chỉ định đường dẫn nếu tệp bạn muốn xóa nằm trong thư mục mặc định]. Mức độ dễ dàng mà bạn có thể thực hiện nhiệm vụ này gần như đáng sợ vì nó quá dễ dàng.

Đặt các biện pháp bảo vệ tại chỗ luôn là một ý tưởng hay. Bạn có thể muốn xóa các mục khác, vì vậy đây là các chức năng khác mà bạn nên biết

  • hệ điều hành. rmdir[]. Xóa thư mục đã chỉ định. Thư mục phải trống hoặc Python sẽ hiển thị thông báo ngoại lệ

  • đóng cửa. rmtree[]. Xóa thư mục đã chỉ định, tất cả các thư mục con và tất cả các tệp. Chức năng này đặc biệt nguy hiểm vì nó loại bỏ mọi thứ mà không cần kiểm tra [Python cho rằng bạn biết mình đang làm gì]. Do đó, bạn có thể dễ dàng bị mất dữ liệu khi sử dụng chức năng này

    Bài viết này cho bạn biết cách xóa các dòng cụ thể khỏi một tệp trong Python. Ví dụ bạn muốn xóa dòng #5 và #12

    Sau khi đọc bài viết này, bạn sẽ học được

    • Cách xóa các dòng cụ thể khỏi tệp theo số dòng
    • Cách xóa các dòng khớp hoặc chứa văn bản/chuỗi đã cho
    • Cách xóa dòng đầu tiên và dòng cuối cùng khỏi tệp văn bản

    Mục lục

    • Xóa các dòng khỏi tệp theo số dòng
      • Sử dụng phương thức seek[]
    • Xóa dòng đầu tiên và dòng cuối cùng của tệp
    • Xóa các dòng khớp với một văn bản [chuỗi]
    • Xóa các dòng có chứa một từ cụ thể
    • Xóa các dòng bắt đầu bằng từ/chuỗi cụ thể
    • Xóa văn bản cụ thể khỏi tệp văn bản
    • Xóa tất cả các dòng khỏi một tệp

    Xóa các dòng khỏi tệp theo số dòng

    Vui lòng làm theo các bước dưới đây để xóa các dòng cụ thể khỏi tệp văn bản theo số dòng. –

    1. Mở tệp ở chế độ đọc
    2. đọc một tập tin. Đọc tất cả nội dung từ một tệp vào danh sách bằng phương pháp
      First line
      Second line
      Third line
      Fourth line
      Sixth line
      Seventh line
      6. ở đây mỗi phần tử của danh sách là một dòng từ tệp
    3. Đóng một tập tin
    4. Một lần nữa, mở cùng một tệp trong chế độ ghi
    5. Lặp lại tất cả các dòng từ một danh sách bằng cách sử dụng hàm for loop và enumerate[]. Hàm
      First line
      Second line
      Third line
      Fourth line
      Sixth line
      Seventh line
      7 thêm bộ đếm vào một lần lặp [chẳng hạn như danh sách, chuỗi] và trả về nó trong đối tượng liệt kê. Chúng tôi đã sử dụng đối tượng liệt kê với vòng lặp for để truy cập số dòng
    6. Sử dụng điều kiện if trong mỗi lần lặp của vòng lặp để kiểm tra số dòng. Nếu trùng với số dòng cần xóa thì không ghi dòng đó vào file
    7. Đóng một tập tin

    Thí dụ

    Đoạn mã sau cho biết cách xóa các dòng khỏi tệp văn bản theo số dòng trong Python. Xem tệp đính kèm được sử dụng trong ví dụ và hình ảnh hiển thị nội dung của tệp để tham khảo

    tập tin văn bản

    Trong ví dụ này, chúng tôi đang xóa dòng 5 và 8

    # list to store file lines
    lines = []
    # read file
    with open[r"E:\demos\files\sample.txt", 'r'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
    
    # Write file
    with open[r"E:\demos\files\sample.txt", 'w'] as fp:
        # iterate each line
        for number, line in enumerate[lines]:
            # delete line 5 and 8. or pass any Nth line you want to remove
            # note list index starts from 0
            if number not in [4, 7]:
                fp.write[line]

    Mã của chúng tôi đã xóa hai dòng. Đây là một dữ liệu hiện tại của một tập tin

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line

    Ghi chú

    Hàm

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    7 thêm bộ đếm vào một lần lặp [chẳng hạn như danh sách, chuỗi] và trả về nó trong đối tượng
    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    9. Chúng tôi đã sử dụng đối tượng
    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    9 với vòng lặp
    with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
        # move file pointer to the beginning of a file
        fp.seek[0]
        # truncate the file
        fp.truncate[]
    
        # start writing lines
        # iterate line and line number
        for number, line in enumerate[lines]:
            # delete line number 5 and 8
            # note: list index start from 0
            if number not in [4, 7]:
                fp.write[line]
    
    1 để truy cập số dòng.
    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    7 không tải toàn bộ danh sách trong bộ nhớ, vì vậy đây là một giải pháp hiệu quả

    Ghi chú. Không sử dụng từ khóa

    with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
        # move file pointer to the beginning of a file
        fp.seek[0]
        # truncate the file
        fp.truncate[]
    
        # start writing lines
        # iterate line and line number
        for number, line in enumerate[lines]:
            # delete line number 5 and 8
            # note: list index start from 0
            if number not in [4, 7]:
                fp.write[line]
    
    3 để xóa các dòng khỏi danh sách và viết cùng một danh sách vào tệp. Bởi vì khi bạn xóa một dòng khỏi danh sách, chỉ mục của mục đó sẽ bị thay đổi. Vì vậy, bạn sẽ không còn có thể xóa đúng dòng

    Sử dụng phương thức seek[]

    Điều tương tự cũng có thể được thực hiện bằng cách sử dụng phương thức seek[] bằng cách thay đổi vị trí con trỏ để chúng ta không cần mở tệp hai lần

    • Mở tệp ở chế độ đọc và ghi [
      with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
          # read an store all lines into list
          lines = fp.readlines[]
          # move file pointer to the beginning of a file
          fp.seek[0]
          # truncate the file
          fp.truncate[]
      
          # start writing lines
          # iterate line and line number
          for number, line in enumerate[lines]:
              # delete line number 5 and 8
              # note: list index start from 0
              if number not in [4, 7]:
                  fp.write[line]
      
      4]
    • Đọc tất cả các dòng từ một tệp vào danh sách
    • Di chuyển con trỏ tệp đến đầu tệp bằng phương pháp
      with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
          # read an store all lines into list
          lines = fp.readlines[]
          # move file pointer to the beginning of a file
          fp.seek[0]
          # truncate the file
          fp.truncate[]
      
          # start writing lines
          # iterate line and line number
          for number, line in enumerate[lines]:
              # delete line number 5 and 8
              # note: list index start from 0
              if number not in [4, 7]:
                  fp.write[line]
      
      5
    • Cắt bớt tệp bằng phương pháp
      with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
          # read an store all lines into list
          lines = fp.readlines[]
          # move file pointer to the beginning of a file
          fp.seek[0]
          # truncate the file
          fp.truncate[]
      
          # start writing lines
          # iterate line and line number
          for number, line in enumerate[lines]:
              # delete line number 5 and 8
              # note: list index start from 0
              if number not in [4, 7]:
                  fp.write[line]
      
      6
    • Lặp lại danh sách bằng vòng lặp và hàm
      First line
      Second line
      Third line
      Fourth line
      Sixth line
      Seventh line
      7
    • Trong mỗi lần lặp, ghi dòng hiện tại vào tệp. Bỏ qua những số dòng mà bạn muốn loại bỏ

    Thí dụ

    with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
        # move file pointer to the beginning of a file
        fp.seek[0]
        # truncate the file
        fp.truncate[]
    
        # start writing lines
        # iterate line and line number
        for number, line in enumerate[lines]:
            # delete line number 5 and 8
            # note: list index start from 0
            if number not in [4, 7]:
                fp.write[line]
    

    Xóa dòng đầu tiên và dòng cuối cùng của tệp

    Để xóa có chọn lọc một số nội dung khỏi tệp, chúng ta cần sao chép nội dung của tệp ngoại trừ những dòng chúng tôi muốn xóa và ghi lại các dòng còn lại vào cùng một tệp

    Sử dụng các bước dưới đây để xóa dòng đầu tiên khỏi tệp

    • Mở tệp ở chế độ đọc và ghi [
      with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
          # read an store all lines into list
          lines = fp.readlines[]
          # move file pointer to the beginning of a file
          fp.seek[0]
          # truncate the file
          fp.truncate[]
      
          # start writing lines
          # iterate line and line number
          for number, line in enumerate[lines]:
              # delete line number 5 and 8
              # note: list index start from 0
              if number not in [4, 7]:
                  fp.write[line]
      
      4]
    • Đọc tất cả các dòng từ một tập tin
    • Di chuyển con trỏ tệp ở đầu tệp bằng phương pháp
      with open[r"E:\demos\files\sample.txt", 'r+'] as fp:
          # read an store all lines into list
          lines = fp.readlines[]
          # move file pointer to the beginning of a file
          fp.seek[0]
          # truncate the file
          fp.truncate[]
      
          # start writing lines
          # iterate line and line number
          for number, line in enumerate[lines]:
              # delete line number 5 and 8
              # note: list index start from 0
              if number not in [4, 7]:
                  fp.write[line]
      
      5
    • Cắt bớt tập tin
    • Viết tất cả các dòng từ một tệp ngoại trừ dòng đầu tiên
    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    7

    đầu ra

    Trước khi xóa dòng đầu tiên

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line

    Sau khi xóa dòng đầu tiên

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    9

    Để xóa N dòng đầu tiên, hãy sử dụng danh sách cắt

    # list to store file lines
    lines = []
    # read file
    with open[r"E:\demos\files\sample.txt", 'r'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
    
    # Write file
    with open[r"E:\demos\files\sample.txt", 'w'] as fp:
        # iterate each line
        for number, line in enumerate[lines]:
            # delete line 5 and 8. or pass any Nth line you want to remove
            # note list index starts from 0
            if number not in [4, 7]:
                fp.write[line]
    0

    Nếu bạn đang đọc một tệp và không muốn đọc dòng đầu tiên, hãy sử dụng phương pháp bên dưới thay vì xóa một dòng khỏi tệp

    # list to store file lines
    lines = []
    # read file
    with open[r"E:\demos\files\sample.txt", 'r'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
    
    # Write file
    with open[r"E:\demos\files\sample.txt", 'w'] as fp:
        # iterate each line
        for number, line in enumerate[lines]:
            # delete line 5 and 8. or pass any Nth line you want to remove
            # note list index starts from 0
            if number not in [4, 7]:
                fp.write[line]
    1

    Sử dụng ví dụ dưới đây để thực hiện các bước xóa dòng cuối cùng khỏi tệp

    # list to store file lines
    lines = []
    # read file
    with open[r"E:\demos\files\sample.txt", 'r'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
    
    # Write file
    with open[r"E:\demos\files\sample.txt", 'w'] as fp:
        # iterate each line
        for number, line in enumerate[lines]:
            # delete line 5 and 8. or pass any Nth line you want to remove
            # note list index starts from 0
            if number not in [4, 7]:
                fp.write[line]
    2

    Để xóa N dòng cuối cùng, hãy sử dụng danh sách cắt

    # list to store file lines
    lines = []
    # read file
    with open[r"E:\demos\files\sample.txt", 'r'] as fp:
        # read an store all lines into list
        lines = fp.readlines[]
    
    # Write file
    with open[r"E:\demos\files\sample.txt", 'w'] as fp:
        # iterate each line
        for number, line in enumerate[lines]:
            # delete line 5 and 8. or pass any Nth line you want to remove
            # note list index starts from 0
            if number not in [4, 7]:
                fp.write[line]
    3

    Xóa các dòng khớp với một văn bản [chuỗi]

    Giả sử các tệp chứa hàng trăm dòng và bạn muốn xóa các dòng khớp với chuỗi/văn bản đã cho. Hãy xem cách xóa các dòng khớp với văn bản đã cho [khớp chính xác]

    bước

    • Đọc tệp vào một danh sách
    • Mở cùng một tệp trong chế độ ghi
    • Lặp lại một danh sách và ghi từng dòng vào một tệp ngoại trừ những dòng khớp với chuỗi đã cho

    ví dụ 1. Xóa các dòng khớp với văn bản đã cho [khớp chính xác]

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    0

    Ngoài ra, bạn có thể đạt được nó bằng cách sử dụng vòng lặp đơn nên sẽ nhanh hơn nhiều

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    1

    Xóa các dòng có chứa một từ cụ thể

    Trong một số trường hợp, chúng tôi có thể phải xóa các dòng khỏi tệp chứa từ khóa hoặc thẻ cụ thể. Hãy xem ví dụ để xóa các dòng khỏi tệp chứa một chuỗi cụ thể ở bất kỳ đâu trong dòng

    Thí dụ

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    2

    Xóa các dòng bắt đầu bằng từ/chuỗi cụ thể

    Tìm hiểu cách xóa các dòng khỏi tệp bắt đầu bằng một từ cụ thể. Trong ví dụ sau, chúng tôi sẽ xóa các dòng bắt đầu bằng từ ‘thời gian‘

    Thí dụ

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    3

    Xóa văn bản cụ thể khỏi tệp văn bản

    Cũng có thể xảy ra trường hợp bạn muốn xóa một chuỗi cụ thể khỏi một tệp chứ không phải dòng chứa chuỗi đó. Hãy xem ví dụ tương tự

    First line
    Second line
    Third line
    Fourth line
    Sixth line
    Seventh line
    4

    Xóa tất cả các dòng khỏi một tệp

    Để xóa tất cả các dòng trong một tệp và làm trống tệp, chúng ta có thể sử dụng phương thức truncate[] trên đối tượng tệp. Phương thức truncate[] xóa tất cả các dòng khỏi tệp và đặt con trỏ tệp về đầu tệp

Chủ Đề