Tôi hiện đang cố gắng lấy mã từ trang web này: //netherkingdom.netai.net/pycake.html sau đó tôi có một tập lệnh python phân tích tất cả mã trong thẻ html div và cuối cùng viết văn bản từ giữa các thẻ div đến một tập tin. Vấn đề là nó thêm một loạt \ r và \ n vào tệp. Làm thế nào tôi có thể tránh điều này hoặc loại bỏ \ r và \ n. Đây là mã của tôi:
import urllib.request
from html.parser import HTMLParser
import re
page = urllib.request.urlopen['//netherkingdom.netai.net/pycake.html']
t = page.read[]
class MyHTMLParser[HTMLParser]:
def handle_data[self, data]:
print[data]
f = open['/Users/austinhitt/Desktop/Test.py', 'r']
t = f.read[]
f = open['/Users/austinhitt/Desktop/Test.py', 'w']
f.write[t + '\n' + data]
f.close[]
parser = MyHTMLParser[]
t = t.decode[]
parser.feed[t]
Và đây là tệp kết quả mà nó tạo ra:
b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
Tốt nhất là tôi cũng muốn loại bỏ b 'và cuối cùng'. Tôi đang sử dụng Python 3.5.1 trên máy Mac.
Đã hỏi ngày 6 tháng 3 năm 2016 lúc 18:41Mar 6, 2016 at 18:41
HittmanahittmanaHittmanA
2931 Huy hiệu vàng4 Huy hiệu bạc11 Huy hiệu đồng1 gold badge4 silver badges11 bronze badges
5
Một giải pháp đơn giản là loại bỏ khoảng trắng dấu vết:
with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
Ưu điểm của
b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
2 so với sử dụng lát b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
3 là điều này cũng an toàn cho các tệp kiểu Unix.Tuy nhiên, nếu bạn chỉ muốn thoát khỏi
b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
4 và họ có thể không ở cuối dòng, thì b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
5 là bạn của bạn:line = line.replace['\r', '']
Nếu bạn có đối tượng byte [đó là hàng đầu
b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
6], bạn có thể chuyển đổi nó thành chuỗi Python 3 gốc bằng cách sử dụng:line = line.decode[]
Đã trả lời ngày 6 tháng 3 năm 2016 lúc 18:59Mar 6, 2016 at 18:59
CDARKECDARKEcdarke
41.2k7 Huy hiệu vàng79 Huy hiệu bạc81 Huy hiệu đồng7 gold badges79 silver badges81 bronze badges
7
Để loại bỏ trở lại vận chuyển:
7b' import time as t\r\n from os import path\r\n import os\r\n \r\n \r\n \r\n \r\n \r\n'
Để xóa tab
8b' import time as t\r\n from os import path\r\n import os\r\n \r\n \r\n \r\n \r\n \r\n'
Wisbucky
29,6K9 Huy hiệu vàng129 Huy hiệu bạc97 Huy hiệu Đồng9 gold badges129 silver badges97 bronze badges
Đã trả lời ngày 8 tháng 7 năm 2020 lúc 8:03Jul 8, 2020 at 8:03
Xóa \ r \ n khỏi chuỗi [hoặc danh sách các chuỗi] trong python #
Sử dụng phương thức
9 để xóa b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
0 khỏi chuỗi trong Python, ví dụ: with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
1. Phương thức with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
9 trả về một bản sao của chuỗi với khoảng trắng kéo dài.b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
Copied!
my_str = "Hello world\r\n" # ✅ remove \r\n from string result = my_str.rstrip[] print[repr[result]] # 👉️ 'Hello world' # ------------------------------------- # ✅ remove \r\n from all strings in list with open['example.txt', 'r', encoding='utf-8'] as f: lines = f.readlines[] print[lines] # 👉️ ['First line\r\n', 'Second line\r\n', 'Third line\r\n'] result = [line.rstrip[] for line in lines] print[result] # 👉️ ['First line', 'Second line', 'Third line']
Ký tự
with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
0 được sử dụng làm ký tự mới trong Windows.Phương thức str.rstrip trả về một bản sao của chuỗi với khoảng trắng kéo dài.
Copied!
my_str = "Hello world\r\n" # ✅ remove \r\n from string result = my_str.rstrip[] print[repr[result]] # 👉️ 'Hello world'
Ngoài ra còn có một phương thức str.strip, trả về một bản sao của chuỗi với khoảng trắng dẫn đầu và dấu vết đã bị loại bỏ.
Copied!
my_str = "\r\nHello world\r\n" result = my_str.strip[] print[repr[result]] # 👉️ 'Hello world'
Bạn cũng có thể sử dụng phương thức
with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
4 để xóa tất cả các ký tự with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
0 trong chuỗi.Copied!
import re my_str = "\r\nHello world\r\n" result = re.sub[r'\r\n', '', my_str] print[repr[result]] # 👉️ 'Hello world'
Phương thức Re.sub trả về một chuỗi mới thu được bằng cách thay thế các lần xuất hiện của mẫu bằng thay thế được cung cấp.
Đối số đầu tiên chúng tôi chuyển sang phương thức là một biểu thức thông thường khớp với các ký tự ____20 và thứ hai là chuỗi thay thế.
Để thay thế
0 từ danh sách các chuỗi:with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
- Sử dụng danh sách hiểu để lặp lại trong danh sách.
- Gọi phương thức
9 để xóa các ký tựb' import time as t\r\n from os import path\r\n import os\r\n \r\n \r\n \r\n \r\n \r\n'
0.with open['gash.txt', 'r'] as var: for line in var: line = line.rstrip[] print[line]
- Các chuỗi trong danh sách mới sẽ không chứa bất kỳ ký tự
0 nào.with open['gash.txt', 'r'] as var: for line in var: line = line.rstrip[] print[line]
Copied!
with open['example.txt', 'r', encoding='utf-8'] as f: lines = f.readlines[] print[lines] # 👉️ ['First line\r\n', 'Second line\r\n', 'Third line\r\n'] result = [line.rstrip[] for line in lines] print[result] # 👉️ ['First line', 'Second line', 'Third line']
Chúng tôi đã sử dụng một danh sách hiểu để lặp lại trong danh sách.
Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.
Trên mỗi lần lặp, chúng tôi gọi phương thức
b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
9 trên chuỗi để loại bỏ bất kỳ khoảng trắng nào.Bạn cũng có thể gọi phương thức
line = line.replace['\r', '']
2 để loại bỏ tất cả khoảng trắng dẫn đầu và theo dõi hoặc phương thức line = line.replace['\r', '']
3 để xóa tất cả các ký tự with open['gash.txt', 'r'] as var:
for line in var:
line = line.rstrip[]
print[line]
0 khỏi chuỗi.b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
0Ví dụ trên giả định rằng có một tệp có tên
line = line.replace['\r', '']
5 nằm trong cùng thư mục với tập lệnh Python.Tệp có nội dung sau:
b'
import time as t\r\n
from os import path\r\n
import os\r\n
\r\n
\r\n
\r\n
\r\n
\r\n'
1