Nguồn cấp dữ liệu dòng python mà không cần trả về vận chuyển

Bạn có một chuỗi rất dài hoặc một chuỗi bao gồm các ký tự thoát dòng mới [\n]. Bạn muốn sử dụng Python 3 để tự động xóa các dòng mới được thêm vào đó khỏi chuỗi, danh sách hoặc tệp của bạn

Tách dòng mới/ngắt dòng khỏi chuỗi Python

Trong bài đăng này, chúng tôi sẽ phác thảo ba phương pháp mà bạn có thể sử dụng để xóa các dòng mới khỏi một chuỗi. Chúng tôi sẽ thảo luận về từng kỹ thuật và đăng mã ví dụ cho từng trường hợp

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

Hàm strip[] trong Python xóa mọi ký tự theo sau ở đầu và cuối chuỗi. Vì vậy, nếu các đường gạch chéo của bạn nằm trước hoặc sau chuỗi, bạn có thể sử dụng dải [] để loại bỏ chúng

Mã số

mystring = '\nThis is my string. \n'
print["With newlines:" + mystring]
print["After deleting the newlines:",mystring.strip[]]

đầu ra

With newlines:
This is my string. 

After deleting the newlines: This is my string.

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

Nếu bạn có một chuỗi chứa nhiều ngắt dòng, bạn có thể sử dụng phương thức thay thế và xóa/thay thế nhiều dòng mới

Mã số

mystring = 'This is my string \nThis comes in the next line.'
print["With line breaks:" + mystring]
print["After deleting line breaks:",mystring.replace['\n','']]

đầu ra

With line breaks:This is my string 
This comes in the next line.
After deleting line breaks: This is my string This comes in the next line.

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

Phương thức splitlines[] giúp chuyển các dòng thành danh sách chia nhỏ. Do đó, chúng ta có thể tách chuỗi của mình thành một danh sách và sau đó nối nó để tạo thành một giá trị chuỗi

Mã số

mystring = 'This is my string \nThis comes in the next line.'
print["With line breaks:" + mystring]
print["After deleting new lines:",''.join[mystring.splitlines[]]]

đầu ra

With line breaks:This is my string 
This comes in the next line.
After deleting new lines: This is my string This comes in the next line.

Thay thế ngắt dòng bằng dấu cách

Một trường hợp phổ biến khác là đặt các khoảng trống thay vì các dòng mới trong một chuỗi. Hãy xem một ví dụ đơn giản

my_str = 'This is a string that\ni read from a file\n'
print[my_str]

Điều này sẽ trả lại như sau

This is a string that
i read from a file

Hãy thay thế ngắt dòng bằng khoảng trắng và in kết quả

________số 8

Điều này sẽ trở lại

This is a string that i read from a file 

Xóa dòng mới khỏi danh sách Python

Theo cách tương tự, bạn có thể dễ dàng loại bỏ các dòng mới khỏi danh sách các chuỗi

Giả sử bạn có danh sách sau

With newlines:
This is my string. 

After deleting the newlines: This is my string.
0

Chúng ta có thể dễ dàng loại bỏ các dòng mới khỏi các phần tử danh sách bằng cách hiểu danh sách và hàm rstrip[]

With newlines:
This is my string. 

After deleting the newlines: This is my string.
1

Đây là kết quả

With newlines:
This is my string. 

After deleting the newlines: This is my string.
2

Ngoài ra, chúng ta có thể thu được kết quả tương tự bằng cách sử dụng hàm replace[]

With newlines:
This is my string. 

After deleting the newlines: This is my string.
3

Chúng ta cũng có thể thay thế các ký tự xuống dòng bằng một khoảng trắng

With newlines:
This is my string. 

After deleting the newlines: This is my string.
4

Xóa ngắt dòng khỏi tệp

Chủ đề cuối cùng của hướng dẫn này là xóa dòng mới khỏi nội dung của tệp văn bản

Chúng tôi biết cách đọc tệp văn bản vào danh sách Python bằng readlines[]. Trong trường hợp này, chúng ta cần một cách tiếp cận hơi khác. Trước tiên, chúng tôi muốn đọc nội dung của tệp văn bản thành một chuỗi. Điều này có thể dễ dàng thực hiện bằng hàm read[] đối tượng tệp. Sau đó, chúng ta có thể thao tác chuỗi khi cần, trong trường hợp này thay thế các ký tự dòng mới bằng khoảng trắng

Tại sao Python âm thầm thêm dấu xuống dòng vào cuối dòng văn bản khi nó ghi nó vào một tệp văn bản và sau đó cũng âm thầm xóa nó khi nó đọc nó từ tệp? . Tuy nhiên, đọc tệp ở dạng nhị phân sẽ cho thấy rằng dòng thực sự được kết thúc bằng một chuỗi thoát \r\n, cũng như đọc tệp bằng tiện ích tệp hex

Nếu bạn muốn đọc một dòng rưỡi văn bản từ tệp bằng lệnh read[size], bạn phải đếm số ký tự cần đọc, bao gồm ký tự \n ở cuối dòng đầu tiên. Trong trường hợp này, bạn bỏ qua ký tự \r, vì lệnh read[size] không bao giờ nhìn thấy nó

Tuy nhiên, con trỏ tệp nhìn thấy cả ký tự \r và \n ở cuối mỗi dòng văn bản và được tăng lên cho cả hai khi chúng được đọc. Nếu bạn sử dụng lệnh seek[] để định vị con trỏ tệp đến một vị trí nào đó trong dòng thứ hai của tệp văn bản trước khi đọc một số ký tự, bạn phải đếm số ký tự để dịch chuyển con trỏ tệp từ đầu tệp. Thay vì chỉ thêm một cho \n ở cuối dòng văn bản, bạn phải thêm hai cho \r\n cặp ký tự thoát

Nếu phải đếm ký tự, bạn cần đảm bảo rằng chỉ có một ký tự thoát ở cuối dòng văn bản. Nếu bạn cần tính toán độ lệch của con trỏ tệp, bạn phải sử dụng thực tế là có hai ký tự thoát ở cuối dòng văn bản. Đây có phải là một lỗi hay có một số lý do bí ẩn cho hoạt động điên rồ này. Cố gắng hết sức có thể, tôi không thể tìm thấy bất kỳ tài liệu nào về “tính năng” này. Tôi đã tìm thấy một hoặc hai hướng dẫn về câu lệnh seek[] sử dụng thực tế +1, nhưng chưa bao giờ giải thích về nó. Tôi đã sử dụng tiện ích tệp hex của mình để loại bỏ thủ công các ký tự thoát \r khỏi tệp văn bản và tất cả các lệnh đọc vẫn hoạt động chính xác, vì vậy nó khá thừa

Python cũng thay đổi mọi ký tự thoát solo \r mà nó tìm thấy trong tệp văn bản thành ký tự \n khi nó đọc nó. Nếu bạn thực sự muốn ký tự \r thì sao?

\n là nguồn cấp dữ liệu dòng hoặc trả lại vận chuyển?

A nạp dòng có nghĩa là di chuyển về phía trước một dòng. Mã là \n. Xuống dòng có nghĩa là di chuyển con trỏ về đầu dòng. Mã là \r.

r n trong Python là gì?

"\r\n" là kiểu Windows mặc định cho dấu phân cách dòng . "\r" là kiểu Mac cổ điển cho dấu phân cách dòng.

Chủ Đề