Làm cách nào để xóa các dòng trống khỏi đường đọc trong python?

Tôi đã đọc một số bài viết cũ hơn về thao tác dòng/danh sách, nhưng không hiểu chính xác cách triển khai tất cả các công cụ mà các bạn đang sử dụng [dòng. strip[] chẳng hạn] để có được những gì tôi cần. Về cơ bản, tôi có một chương trình đang hoạt động lặp qua dữ liệu và xuất nó thành một tệp. Nếu một trong các dòng trong tệp trống, chương trình sẽ gặp sự cố. Tôi muốn biết đoạn mã mẫu nào tôi có thể thêm vào để đảm bảo rằng chương trình tiếp tục lặp lại. Tuyệt vời hơn nữa sẽ là một cách để chương trình cho tôi biết điểm nào trong các dòng trống dữ liệu xuất hiện. Nhưng tôi sẽ rất vui nếu chương trình bỏ qua các dòng trống

Bất kỳ đề xuất?

con trăn

0 0

Chia sẻ

  • 3 Cộng tác viên
  • 3 Trả lời
  • 20 nghìn Lượt xem
  • 1 tháng Khoảng thời gian thảo luận
  • Bài đăng mới nhất Bài đăng mới nhất bởi tdeck

Câu trả lời được đề xuất

Đã trả lời bởi jlm699 320 trong một

Làm thế nào các bạn sẽ đặt điều đó trong các điều khoản của giáo dân?

tôi sẽ dịch nó sang. if empty line: tôi đoán. Đây là một ví dụ, về cơ bản, mã này dựa trên thực tế là Python coi một chuỗi rỗng hoặc '' là Sai, trong khi …

Cả 3 câu trả lời

hughesadam_87 54 Áp phích trẻ

13 năm trước

Có lẽ tôi có thể làm rõ mối quan tâm của tôi. Lấy mã này, yêu cầu bỏ qua các dòng trống [và hoạt động] mà tôi tìm thấy trực tuyến

infile = open["text.txt","r"]

for line in infile:
        if not line.strip[]:
                continue
        else:
                print line

Mã này nói gì? . dải []" đang thực sự làm. Làm thế nào các bạn sẽ đặt điều đó trong các điều khoản của giáo dân? . dải[]"

0 0

Chia sẻ

jlm699 320 Áp phích Cựu chiến binh

13 năm trước

Làm thế nào các bạn sẽ đặt điều đó trong các điều khoản của giáo dân?

tôi sẽ dịch nó sang. if empty line: tôi đoán. Đây là một ví dụ, về cơ bản, mã này dựa trên thực tế là Python coi một chuỗi rỗng hoặc '' là Sai, trong khi chuỗi không trống là Đúng. Hãy để tôi chứng minh

>>> empty_line = '\n'
>>> text_line = 'Lipsum\n'
>>> 
>>> empty_line.strip[]
''
>>> text_line.strip[]
'Lipsum'
>>> bool[ empty_line.strip[] ]
False
>>> bool[ text_line.strip[] ]
True
>>> if '':
..     print 'Empty!'
..     
>>> if not '':
..     print 'Empty!'
..     
Empty!
>>>

Vì vậy, như bạn có thể thấy, dải loại bỏ ký tự dòng mới và bất kỳ khoảng trắng giới hạn nào [tab, dòng mới, dấu cách - ở ngoài cùng bên trái và bên phải của chuỗi]

Vì Python coi một dòng trống là Sai, mã này đang chờ một dòng không đánh giá là Sai, trước khi hành động trên nó

>>> lines = [ 'Not empty\n', '\n', '         Foobar\n' ]
>>> for line in lines:
..     print bool[ line.strip[] ], '=', line.strip[]
..     
True = Not empty
False = 
True = Foobar
>>> for line in lines:
..     if line.strip[]:
..         print 'Found a line: %s' % line.strip[]
..     else:
..         print 'Empty line!'
..     
Found a line: Not empty
Empty line!
Found a line: Foobar
>>> # Now repeat with 'not' to negate the True/False
>>> for line in lines:
..     if not line.strip[]:
..         print 'Empty line!'
..     else:
..         print 'Found a line: %s' % line.strip[]
..     
Found a line: Not empty
Empty line!
Found a line: Foobar
>>>

Bây giờ, ví dụ trên minh họa đánh giá boolean của chuỗi được trả về bởi

>>> empty_line = '\n'
>>> text_line = 'Lipsum\n'
>>> 
>>> empty_line.strip[]
''
>>> text_line.strip[]
'Lipsum'
>>> bool[ empty_line.strip[] ]
False
>>> bool[ text_line.strip[] ]
True
>>> if '':
..     print 'Empty!'
..     
>>> if not '':
..     print 'Empty!'
..     
Empty!
>>>
2

Hy vọng điều đó làm sáng tỏ nó cho bạn

1 0

Chia sẻ

tdeck 7 Áp phích ánh sáng

13 năm trước

Dòng gì. dải [] đang làm là xóa khoảng trắng ở cuối chuỗi. Nếu dòng hoàn toàn trống hoặc chỉ có dấu cách và tab, dòng. dải [] sẽ trả về một chuỗi rỗng '' đánh giá là sai. Đây có thể không phải là hành vi bạn muốn. Tất cả phụ thuộc vào việc bạn có muốn một dòng có khoảng trắng trong đó được tính là một dòng trống hay không

Chủ Đề