Làm cách nào để xóa các bản sao khỏi tệp văn bản trong python?

Tạo từ điển, sử dụng các mục Danh sách làm khóa. Điều này sẽ tự động loại bỏ mọi trùng lặp vì từ điển không thể có khóa trùng lặp

Tạo từ điển

mylist = ["a", "b", "a", "c", "c"]
mylist = list[dict. fromkeys[mylist]]
print[mylist]

Sau đó, chuyển từ điển trở lại thành danh sách

Chuyển đổi thành một danh sách

mylist = ["a", "b", "a", "c", "c"]
mylist = list[dict. fromkeys[mylist]]
print[mylist]

Bây giờ chúng tôi có một Danh sách không có bất kỳ bản sao nào và nó có cùng thứ tự với Danh sách ban đầu

In danh sách để chứng minh kết quả

In danh sách

mylist = ["a", "b", "a", "c", "c"]
mylist = list[dict. fromkeys[mylist]]
print[mylist]

Tạo một chức năng

Nếu bạn muốn có một chức năng mà bạn có thể gửi các danh sách của mình và nhận lại chúng mà không bị trùng lặp, bạn có thể tạo một chức năng và chèn mã từ ví dụ trên

Nhiệm vụ là loại bỏ các dòng trùng lặp khỏi tệp văn bản. Điều này có thể hữu ích khi chúng ta cần xóa các dòng trùng lặp trong các tệp lớn

Chương trình

openFile = open["demo.txt", "r"] 
writeFile = open["updatedFile", "w"] 
#Store traversed lines
tmp = set[] 
for txtLine in openFile: 
#Check new line
    if txtLine not in tmp: 
        writeFile.write[txtLine] 
#Add new traversed line to tmp 
        tmp.add[txtLine]         
openFile.close[] 
writeFile.close[]

đầu ra

Giải trình

Cách tiếp cận

  • Mở tệp đầu vào ở chế độ đọc và tệp đầu ra ở chế độ ghi để lưu trữ đầu ra
  • Lặp lại các dòng của tệp đầu vào và kiểm tra xem dòng đó có tồn tại trong set[] không. Nếu không tìm thấy dòng trong tập hợp [], hãy thêm dòng vào tập hợp rồi thêm dòng vào tệp đầu ra
  • Nếu dòng được tìm thấy trong tập hợp [], hãy bỏ qua quy trình tiếp theo và chuyển sang dòng tiếp theo của tệp
  • Lặp lại các bước trên
  • Lưu và đóng tệp đầu ra

bài viết liên quan

  • Chương trình đảo ngược nội dung của tệp văn bản và lưu trữ trong…
  • Chương trình nối nội dung của tệp này vào tệp khác…
  • Chương trình hợp nhất hai tệp thành tệp thứ ba bằng Python
  • Chương trình tìm kiếm tệp có phần mở rộng cụ thể bằng cách sử dụng…
  • Chương trình đếm số dòng trong file văn bản bằng…
  • Chương trình lấy số dòng chứa từ đã cho…

Để lại bình luận Hủy trả lời

Lưu tên, email và trang web của tôi trong trình duyệt này cho lần bình luận tiếp theo

Δ

Trang web này sử dụng Akismet để giảm thư rác. Tìm hiểu cách dữ liệu nhận xét của bạn được xử lý

https. //xã hội. công nghệ. Microsoft. com/Forums/lync/en-US/13c69268-da2f-4ecb-bfd4-f98c9f5170ab/remove-duplicates-from-text-file-that-matches-a-given-string?forum=winserverpowershell


I've created the below example just to demonstrate the issue. What I need to do is create a new file with all of this data in it but only one instance of " A Human", as you can see below this line is shown twice, everything else should stay exactly as it is.



Actor


Person


A Human

Person
A Human
A Human
Another Human
Another totally different human

Lý tưởng nhất là vị trí của từng trường hợp không quan trọng và các dòng trùng lặp từ bên dưới cũng sẽ được phát hiện [ví dụ từ trang web của Microsoft đã đề cập đến cả hai dòng trùng lặp liên tiếp nhưng có thể không phải như vậy], tôi không biết có bao nhiêu ký tự có thể

Person
A Human

Chủ Đề