Hướng dẫn python bytes remove double backslash - byte python loại bỏ dấu gạch chéo ngược kép

Sử dụng mã hóa văn bản Python

Có những mã hóa văn bản có thể giúp bạn có được những gì bạn muốn cả đơn giản và dễ dàng. Dưới đây tôi mã hóa và giải mã để có được kết quả mong muốn:
Below I encode and decode to get the desired result:

# I have the string shortened for presentation
your_string = "\\xda\\xad\\x94"

your_string.encode[].decode['unicode_escape'].encode["raw_unicode_escape"]

Những gì được thực hiện ở trên có thể được giải thích trong ba bước đơn giản:

  1. Mã hóa chuỗi để biến nó thành một đối tượng
    your_string = "\\\\xda\\\\xad\\\\x94"
    your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
    
    2 và sau đó loại bỏ các chuỗi thoát hiểm.
  2. Giải mã đối tượng thành một chuỗi với codec
    your_string = "\\\\xda\\\\xad\\\\x94"
    your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
    
    3 để giải quyết các dấu gạch chéo ngược.
  3. Mã hóa đối tượng với
    your_string = "\\\\xda\\\\xad\\\\x94"
    your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
    
    4 để biến nó trở lại thành một đối tượng byte mà không cần thoát thêm.

Nhiều chuỗi thoát hiểm

Có lẽ bạn có một chuỗi có nhiều chuỗi thoát hiểm [hoặc dấu gạch chéo ngược gấp đôi]. Nếu vậy, bạn chỉ có thể lặp lại các bước 2 và 3 khi chúng được liệt kê ở trên bao nhiêu lần cần thiết.

your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']

Điều này có thể trở nên khá tẻ nhạt và lộn xộn, nhưng bạn luôn có thể tạo ra một chức năng để chống lại điều đó.

Không có trình tự thoát hiểm

Bây giờ nếu bạn có một chuỗi mà không có bất kỳ chuỗi thoát hiểm nào mà bạn muốn biến thành đối tượng byte, tất cả những gì cần thiết là mã hóa được thấy trong bước 1:

your_string = "\xda\xad\x94"
your_string.encode[]

Đối tượng byte

Nếu bạn có đối tượng byte thay vì chuỗi, mọi thứ về cơ bản đều giống nhau, chỉ cần bỏ qua bước 1, vì các đối tượng byte đã có mã hóa [nếu không thì lỗi được nêu ra].

your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]

Tất cả các ví dụ này sẽ cấp cho bạn một byte đối tượng mà không có dấu gạch chéo ngược, trong các ví dụ tôi đã cung cấp ở trên là:

b'\xda\xad\x94'

Giải trình

Codec

your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
5 loại bỏ thoát ra khi giải mã [và thêm vào việc thoát ra khi mã hóa] và codec
your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
4 không thoát khỏi sự chần chừ khi mã hóa. Vì vậy, cả hai codec này đều có ích khi xử lý các ký tự thoát trong các đối tượng byte.

raw_unicode_escape

Mã hóa Latin-1 với \ uxxxx và \ uxxxxxxxxx cho các điểm mã khác. Backslash hiện tại không được trốn thoát theo bất kỳ cách nào. Nó được sử dụng trong giao thức Python Pickle.

unicode_escape

Mã hóa phù hợp như nội dung của một bản theo nghĩa đen của unicode trong mã nguồn python được mã hóa ASCII-ASCII, ngoại trừ các trích dẫn không được thoát ra. Giải mã từ mã nguồn Latin-1. Hãy coi chừng mã nguồn Python thực sự sử dụng UTF-8 theo mặc định.

Tôi sẽ nói thêm rằng phương thức

your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
7 không phải là phương tiện duy nhất để mã hóa một chuỗi. Ngoài ra, bạn có thể sử dụng hàm
your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
8 từ mô-đun
your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
9 hoặc thậm chí hàm
your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
2 của Bulit-in [chỉ cần đảm bảo cung cấp cho tham số mã hóa]. Lý do tại sao tôi sử dụng phương pháp
your_string = "\xda\xad\x94"
your_string.encode[]
1 ở đây là vì nó có vẻ đơn giản hơn.
The reason why I used the
your_string = "\xda\xad\x94"
your_string.encode[]
1 method here is because it seemed more straightforward.

Để biết thêm thông tin, xem: Thư viện Python 2 - Mã hóa cụ thể Python Python 3 Thư viện - Mã hóa văn bản Python 3 Phân tích từ vựng - Chuỗi & Byte theo chữ và trình tự thoát
Python 2 Library - Python Specific Encodings
Python 3 Library - Text Encodings
Python 3 Lexical Analysis - String & Bytes Literals and Escape Sequences

Thay thế đôi dấu gạch chéo ngược bằng dấu gạch chéo ngược trong python #

Sử dụng phương thức

your_string = "\xda\xad\x94"
your_string.encode[]
2 để thay thế dấu gạch chéo ngược kép bằng một dấu gạch chéo ngược, ví dụ:
your_string = "\xda\xad\x94"
your_string.encode[]
3. Backslashes có một ý nghĩa đặc biệt trong Python, vì vậy mỗi dấu gạch chéo ngược phải được thoát ra với một dấu gạch chéo ngược khác.

Copied!

string = 'bobby\\\\hadz\\\\com' print[string] # 👉️ bobby\\hadz\\com new_string = string.replace['\\\\', '\\'] print[new_string] # 👉️ bobby\hadz\com # ----------------------------------- string = r'bobby\hadz\com' print[string] # 👉️ bobby\hadz\com

Chúng tôi đã sử dụng phương thức

your_string = "\xda\xad\x94"
your_string.encode[]
2 để thay thế một dấu gạch chéo ngược bằng một dấu gạch chéo ngược.

Nhân vật Backslash

your_string = "\xda\xad\x94"
your_string.encode[]
5 có ý nghĩa đặc biệt trong Python - nó được sử dụng làm ký tự thoát [ví dụ:
your_string = "\xda\xad\x94"
your_string.encode[]
6 hoặc
your_string = "\xda\xad\x94"
your_string.encode[]
7].

Bằng cách thêm một dấu gạch chéo ngược thứ hai, chúng tôi coi dấu gạch chéo ngược [

your_string = "\xda\xad\x94"
your_string.encode[]
5] là một ký tự theo nghĩa đen.

Copied!

my_str = 'bobby \\ hadz' print[my_str] # 👉️ bobby \ hadz

Để có hai dấu gạch chéo ngược nhau, chúng ta phải sử dụng bốn ký tự dấu gạch chéo ngược.

Copied!

my_str = 'bobby \\\\ hadz' print[my_str] # 👉️ bobby \\ hadz

Phương thức Str.Replace trả về một bản sao của chuỗi với tất cả các lần xuất hiện của một chuỗi con được thay thế bằng cách thay thế được cung cấp.

Copied!

string = 'bobby\\\\hadz\\\\com' print[string] # 👉️ bobby\\hadz\\com new_string = string.replace['\\\\', '\\'] print[new_string] # 👉️ bobby\hadz\com

Phương thức lấy các tham số sau:

TênSự mô tả
Bộ con mà chúng tôi muốn thay thế trong chuỗi
MớiSự thay thế cho mỗi lần xuất hiện
your_string = "\xda\xad\x94"
your_string.encode[]
9
đếmChỉ những lần xuất hiện đầu tiên được thay thế [tùy chọn]

Phương thức không thay đổi chuỗi ban đầu. Chuỗi là bất biến trong Python.

Nếu bạn cần xử lý một chuỗi thoát, hãy sử dụng phương pháp

your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
1.

Copied!

string = 'bobby\\nhadz' new_string = bytes[string, "utf-8"].decode["unicode_escape"] # bobby # hadz print[new_string]

Chúng tôi đã sử dụng lớp

your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
2 để chuyển đổi chuỗi thành đối tượng byte và sau đó sử dụng phương thức
your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
1 để giải mã đối tượng byte thành một chuỗi với mã hóa
your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
5.

Nếu bạn có quyền truy cập vào biến đã khai báo chuỗi, bạn có thể đánh dấu nó là một chuỗi thô.

your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
0

Các chuỗi được tiền tố với

your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
5 được gọi là chuỗi thô và coi các dấu gạch chéo ngược là ký tự theo nghĩa đen.

Chúng ta không phải thoát khỏi các dấu gạch chéo ngược trong các chuỗi thô.

Nếu bạn cần sử dụng các biến trong một chuỗi thô, hãy sử dụng một chuỗi được định dạng theo nghĩa đen.

your_string = "\\\\xda\\\\xad\\\\x94"
your_string.encode[].decode['unicode_escape'].encode['raw_unicode_escape'].decode['unicode_escape'].encode['raw_unicode_escape']
1

Chuỗi được định dạng theo nghĩa đen [F-Strings] Hãy cho chúng tôi bao gồm các biểu thức bên trong chuỗi bằng cách tiền tố chuỗi với

your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
6.

Hãy chắc chắn để bọc các biểu thức trong niềng răng xoăn -

your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
7.

Lưu ý rằng chúng tôi đã có tiền tố chuỗi với

your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
8 và không chỉ với
your_bytes_obj = b"\\xda\\xad\\x94"
your_string.decode['unicode_escape'].encode["raw_unicode_escape"]
6.

Bài Viết Liên Quan

Chủ Đề