Hướng dẫn python clear multiple lines - python xóa nhiều dòng

Bây giờ, tôi biết loại câu hỏi này đã được hỏi trước đây, nhưng điều này hơi khác. Tôi muốn sử dụng một tệp

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
8 để xóa nhiều dòng khỏi một tệp khác
txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
9 Nhiều dòng này đều cùng nhau, như:
I want to use a file
txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
8 to remove MULTIPLE lines from another file
txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
9
These multiple lines are all together, like:

line_To_Delete1
line_To_Delete2
line_To_Delete3
line_To_Replace1  

Tất cả các dòng này sẽ có các nhận xét

print(1)
print(2)
NewText
print(6)
print(7)
0,
print(1)
print(2)
NewText
print(6)
print(7)
1 hoặc một cái gì đó nhằm xác định nó là duy nhất và một ý kiến ​​để xóa/thay thế. Vậy làm cách nào để xóa tất cả các dòng này với nhau? Ngoài ra, tôi muốn thay thế dòng thứ 4 bằng một số dòng khác. Làm thế nào để tôi làm tất cả những điều này?
So how do I delete all these lines together?
Also, I want to replace the 4th line with some other line.
How do I do all this?

Đã hỏi ngày 7 tháng 9 năm 2020 lúc 16:53Sep 7, 2020 at 16:53

Hướng dẫn python clear multiple lines - python xóa nhiều dòng

Zelix75Zelix75Zelix75

731 Huy hiệu bạc8 Huy hiệu đồng1 silver badge8 bronze badges

2

Để xóa các dòng khỏi một tệp dựa trên một điều kiện, bạn chỉ có thể đọc các dòng từ một tệp sau đó viết chúng sang một tệp khác nếu điều kiện là sai.

Thử mã này:

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)

Đầu ra (targetfile.py)

print(1)
print(2)
NewText
print(6)
print(7)

Đã trả lời ngày 8 tháng 9 năm 2020 lúc 19:29Sep 8, 2020 at 19:29

Hướng dẫn python clear multiple lines - python xóa nhiều dòng

Mike67Mike67Mike67

Huy hiệu vàng 11k2 6 Huy hiệu bạc15 Huy hiệu đồng2 gold badges6 silver badges15 bronze badges

4

Mặc dù các chương trình thường được sử dụng để tạo tệp, nhưng có những lúc các lập trình viên cũng cần xóa dữ liệu tệp. May mắn thay, có nhiều cách để xóa văn bản từ một tệp. Trong bài đăng này, chúng tôi sẽ sử dụng một số ví dụ đơn giản để chứng minh cách xóa tệp văn bản bằng Python.

Nội phân Chính showShow

  • Xóa tệp văn bản bằng hàm Open () ở chế độ ghi
  • Cách xóa một tệp bằng phương thức cắt ()
  • Xóa tệp văn bản bằng cách cắt danh sách Python
  • Cách xóa các dòng cụ thể khỏi tệp văn bản
  • Xóa dòng đầu tiên của tệp văn bản
  • Xóa nhiều dòng khỏi tệp văn bản
  • Cách xóa tệp văn bản bằng chuỗi
  • Bài viết liên quan
  • Khuyến nghị đào tạo Python
  • Khóa học: Python 3 cho người mới bắt đầu
  • Hơn 15 giờ nội dung video với hướng dẫn hướng dẫn cho người mới bắt đầu. Tìm hiểu làm thế nào để tạo các ứng dụng trong thế giới thực và làm chủ những điều cơ bản.
  • Xóa tệp văn bản bằng hàm Open () trong chế độ ghi Mở tệp ở chế độ ghi xóa dữ liệu của nó. Ngoài ra, nếu tệp được chỉ định không tồn tại, Python sẽ tạo ra một tệp mới. Cách đơn giản nhất để xóa một tệp là sử dụng Open () và gán nó cho một biến mới trong chế độ ghi.
  • Để xóa tất cả các dòng trong một tệp và xóa tệp, chúng ta có thể sử dụng phương thức cắt ngắn () trên đối tượng tệp. Phương thức cắt () loại bỏ tất cả các dòng khỏi một tệp và đặt con trỏ tệp đến đầu tệp.

A+: Mở một tệp cho cả nối tiếp và đọc. AB+: Mở một tệp cho cả việc thêm và đọc ở chế độ nhị phân.

Mặc dù các chương trình thường được sử dụng để tạo tệp, nhưng có những lúc các lập trình viên cũng cần xóa dữ liệu tệp. May mắn thay, có nhiều cách để xóa văn bản từ một tệp. Trong bài đăng này, chúng tôi sẽ sử dụng một số ví dụ đơn giản để chứng minh cách xóa tệp văn bản bằng Python.

Xóa tệp văn bản bằng hàm Open () ở chế độ ghi

Cách xóa một tệp bằng phương thức cắt ()write mode will automatically delete the file’s contents. The open() function takes two arguments, the text file we’d like to open and the mode we’re opening it in.

Xóa tệp văn bản bằng cách cắt danh sách Python

file_to_delete = open("info.txt",'w')
file_to_delete.close()

Cách xóa các dòng cụ thể khỏi tệp văn bảnwith statement simplifies exception handling. Using with to open a file in write mode will also clear its data. A pass statement completes the example.

# clear the data in the info file
with open("info.txt",'w') as file:
    pass

Cách xóa một tệp bằng phương thức cắt ()

Xóa tệp văn bản bằng cách cắt danh sách Python

Cách xóa các dòng cụ thể khỏi tệp văn bản

Xóa dòng đầu tiên của tệp văn bản

Xóa nhiều dòng khỏi tệp văn bản
Guido van Rossum created Python in 1991.
Python is a general purpose programming language.
One of Python’s strengths is readability.

with open("info.txt",'r+') as file:
    file.truncate(16)

# read the file’s contents
with open("info.txt", 'r') as file:
    lines = file.readlines()
    for line in lines:
        print(line)

Đầu ra

Guido van Rossum

Trong ví dụ trên, phương thức cắt ngắn () đã giảm tệp xuống 16 ký tự đầu tiên của văn bản. Lưu ý rằng chúng tôi đã mở tệp ở cả chế độ đọc và ghi. Điều này là cần thiết để phương pháp cắt ngắn hoạt động.

Bằng cách chuyển giá trị 0 cho phương thức cắt ngắn (), nó có thể xóa hoàn toàn tệp văn bản.0 to the truncate() method, it’s possible to clear the text file completely.

with open("example.txt",'r+') as file:
    file.truncate(0)

Mã Python ở trên sẽ xóa một tệp văn bản của nội dung của nó. Sử dụng phương thức cắt () theo cách này sẽ giảm kích thước tệp xuống 0, xóa bất kỳ nội dung nào mà tệp chứa.

Xóa tệp văn bản bằng cách cắt danh sách Python

Với ký hiệu lát cắt Python, nó có thể truy xuất một tập hợp con của danh sách, chuỗi hoặc tuple. Sử dụng tính năng Python này, chúng ta có thể xác định các chỉ mục bắt đầu và kết thúc của một tập hợp con nhất định.

Ký hiệu lát cắt sử dụng một cú pháp đặc biệt để tìm một tập hợp con của một loạt các giá trị. Sau đây & nbsp; Ví dụ cho thấy cách ký hiệu lát cắt hoạt động. Bằng cách xác định bắt đầu, kết thúc và bước của lát cắt, chúng tôi sẽ có được một tập hợp con của danh sách ban đầu.

nums = [1,2,3,4,5,6,7,8,9]
sub = nums[1:8:2]
print(sub)

Đầu ra

[2, 4, 6, 8]

Tiếp theo, chúng tôi sẽ sử dụng cùng một tài liệu Info.txt từ phần trước để chứng minh cách sử dụng ký hiệu lát cắt để xóa các dòng khỏi tệp văn bản. Phương thức Readlines () sẽ trả về một danh sách các dòng văn bản trong tài liệu.

Sau khi các dòng được trích xuất, chúng tôi có thể sử dụng ký hiệu lát cắt để tạo một danh sách mới mà chúng tôi sẽ sử dụng để ghi đè lên tệp cũ. Chỉ những dòng đầu tiên của văn bản sẽ vẫn còn. Những người khác sẽ được xóa khỏi tệp văn bản.

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
0

Đầu ra

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
1

Cách xóa các dòng cụ thể khỏi tệp văn bản

Sử dụng một số hàm Python phổ biến, chúng tôi cũng có thể xóa các dòng dữ liệu cụ thể khỏi các tệp văn bản. Nó đặc biệt hữu ích nếu chúng ta biết những dòng chúng ta muốn loại bỏ trước thời hạn. Trong trường hợp đó, chúng ta có thể sử dụng ký hiệu lát cắt để truy xuất một tập hợp con của tệp.

Bằng cách viết qua một tệp với một tập hợp con dữ liệu của nó, chúng ta có thể xóa các dòng văn bản. Các ví dụ sau đây sử dụng một đoạn trích từ bài thơ Giấc mơ được hoãn lại bởi nhà văn người Mỹ Langston Hughes.

Dream.txt Điều gì xảy ra với một giấc mơ bị trì hoãn? Nó có làm khô một nho khô dưới ánh mặt trời không?
What happens to a dream deferred?
Does it dry up
Like a raisin in the sun?

Xóa dòng đầu tiên của tệp văn bản

Để xóa dòng văn bản đầu tiên khỏi một tệp, chúng tôi sẽ cần sử dụng một vài phương thức xử lý tệp Python. Đầu tiên, chúng tôi sẽ sử dụng các readlines () để có được danh sách dữ liệu văn bản của tệp. Với phương thức Seek (), chúng ta có thể định vị lại vị trí con trỏ tệp theo cách thủ công.

Thứ hai, chúng ta có thể sử dụng phương thức cắt ngắn () để thay đổi kích thước tệp. Thứ ba, chúng tôi sẽ viết một danh sách mới các dòng vào tệp. Sử dụng ký hiệu lát cắt, nó có thể bỏ qua dòng đầu tiên của tệp gốc.

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
2

Đầu ra

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
3

Xóa nhiều dòng khỏi tệp văn bản

Nó cũng có thể xóa nhiều dòng văn bản khỏi một tệp. Với ký hiệu lát cắt, chúng tôi có thể tạo bất kỳ tập hợp con nào của dữ liệu chúng tôi muốn. Sử dụng phương pháp ghi đè tệp gốc này, chúng tôi có thể xóa một cách hiệu quả tệp của bất kỳ dữ liệu không mong muốn nào.

Bằng cách thay đổi các chỉ mục bắt đầu và kết thúc của lát cắt, chúng tôi sẽ nhận được một tập hợp con khác của tệp Dream.txt. Nó cũng có thể kết hợp các danh sách thái lát. Sử dụng các công cụ này cung cấp nhiều tính linh hoạt khi tạo ra các tập hợp con danh sách.

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
4

Đầu ra

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
5

Cách xóa tệp văn bản bằng chuỗi

Điều gì sẽ xảy ra nếu chúng ta muốn xóa một dòng khỏi một chuỗi chứa một từ, cụm từ hoặc số nhất định? Chúng ta có thể sử dụng câu lệnh Python IF để kiểm tra dữ liệu chuỗi của từng dòng. Nếu chuỗi mà chúng tôi đang tìm kiếm nằm trong dòng, chúng tôi có thể tránh bao gồm nó trong tệp đầu ra.if statement to check the string data of each line. If the string we’re looking for is in the line, we can avoid including it in the output file.

nhân viên.txtname: Jamie Jamesonage: 37CoCupation: copywriterstarting Ngày: ngày 3 tháng 4 năm 2019
Name: Jamie Jameson
Age: 37
Occupation: Copywriter
Starting Date: April 3, 2019

Trong ví dụ này, chúng ta cần mở tập tin ba lần. Để bắt đầu, chúng tôi sẽ mở tệp để trích xuất nội dung của nó. Tiếp theo, chúng tôi sẽ viết dữ liệu vào một tệp mới, xóa các dòng chúng tôi không muốn. Cuối cùng, chúng tôi sẽ cần mở tệp và đọc nó để chứng minh rằng tệp được xử lý chính xác.

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
6

Đầu ra

txt = '''
print(1)
print(2)
print(3)  #del1
print(4)  #del2
print(5)  #rep1
print(6)
print(7)
'''.strip()

with open("targetfile.py",'w') as f:  # write test file
    f.write(txt)

######### main script #########

repstr = "NewText"

outstr = ""
with open("targetfile.py") as f1:
   for ln in f1.readlines():
      if "#rep" in ln:    # condition to replace line
          outstr += repstr + '\n'
      elif not "#del" in ln:  # condition to copy line
          outstr += ln
             
with open("targetfile.py",'w') as f2:  # overwrite file
    f2.write(outstr)
7

Bản tóm tắt

Trong bài đăng này, chúng tôi đã xem xét sâu về cách xóa các tệp văn bản bằng Python. Chúng tôi đã thấy rằng ngôn ngữ Python cung cấp nhiều tùy chọn để hoàn thành nhiệm vụ này. Sử dụng một số phương thức và chức năng đạt tiêu chuẩn với mỗi cài đặt của Python, chúng tôi có thể xóa toàn bộ tệp cũng như xóa các dòng cụ thể khỏi một tệp.

Mặc dù các công cụ như ký hiệu lát cắt rất tốt để xóa các tệp văn bản, nhưng chúng cũng có ích ở các lĩnh vực khác. Theo cách này, mỗi tính năng mới của Python mà bạn nghiên cứu sẽ cải thiện khả năng mã hóa tổng thể của bạn.

Bài viết liên quan

Nếu bạn thấy bài đăng này hữu ích và muốn tìm hiểu thêm về lập trình với Python, hãy theo dõi các liên kết này đến các bài viết tuyệt vời hơn từ nhóm của chúng tôi tại Python cho người mới bắt đầu. Cho dù đó là xử lý tập tin và quản lý dữ liệu, bạn sẽ học được các kỹ năng cần thiết để phát triển mạnh trong thế giới kỹ thuật số thay đổi nhanh chóng ngày nay.

  • Xử lý lỗi nâng cao với Python thử ngoại trừ
  • Danh sách Python Hiểu để quản lý dữ liệu dễ dàng hơn

Khuyến nghị đào tạo Python

Khóa học: Python 3 cho người mới bắt đầu

Hơn 15 giờ nội dung video với hướng dẫn hướng dẫn cho người mới bắt đầu.Tìm hiểu làm thế nào để tạo các ứng dụng trong thế giới thực và làm chủ những điều cơ bản.

Xóa tệp văn bản bằng hàm Open () trong chế độ ghi Mở tệp ở chế độ ghi xóa dữ liệu của nó.Ngoài ra, nếu tệp được chỉ định không tồn tại, Python sẽ tạo ra một tệp mới.Cách đơn giản nhất để xóa một tệp là sử dụng Open () và gán nó cho một biến mới trong chế độ ghi.Using the open() Function in write Mode Opening a file in write mode clears its data. Also, if the file specified doesn't exist, Python will create a new one. The simplest way to delete a file is to use open() and assign it to a new variable in write mode.

Để xóa tất cả các dòng trong một tệp và xóa tệp, chúng ta có thể sử dụng phương thức cắt ngắn () trên đối tượng tệp.Phương thức cắt () loại bỏ tất cả các dòng khỏi một tệp và đặt con trỏ tệp đến đầu tệp.use the truncate() method on the file object. The truncate() method removes all lines from a file and sets the file pointer to the beginning of the file.

A+: Mở một tệp cho cả nối tiếp và đọc.AB+: Mở một tệp cho cả việc thêm và đọc ở chế độ nhị phân.Opens a file for both appending and reading. ab+ : Opens a file for both appending and reading in binary mode.