Hướng dẫn how do i get rid of b in python output? - làm cách nào để loại bỏ b trong đầu ra python?

115

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi là người mới trong chương trình Python và tôi hơi bối rối. Tôi cố gắng lấy các byte từ một chuỗi đến băm và mã hóa nhưng tôi đã nhận được

b'...'

B ký tự ở phía trước chuỗi giống như ví dụ dưới đây. Có cách nào tránh được điều này không?. Có thể đưa ra một giải pháp nào không? Xin lỗi vì câu hỏi ngớ ngẩn này

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)

OUTPUT:

 print b'my secret data'

Khi được hỏi ngày 4 tháng 5 năm 2016 lúc 1:27May 4, 2016 at 1:27

Hướng dẫn how do i get rid of b in python output? - làm cách nào để loại bỏ b trong đầu ra python?

1

Cái này cần phải dùng mẹo:

pw_bytes.decode("utf-8")

Đã trả lời ngày 4 tháng 5 năm 2016 lúc 1:33May 4, 2016 at 1:33

Krockkrockkrock

28.3K12 Huy hiệu vàng76 Huy hiệu bạc84 Huy hiệu đồng12 gold badges76 silver badges84 bronze badges

7

Đây bạn đi

f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)

Đã trả lời ngày 17 tháng 2 năm 2017 lúc 16:57Feb 17, 2017 at 16:57

Hướng dẫn how do i get rid of b in python output? - làm cách nào để loại bỏ b trong đầu ra python?

3

Giải mã là dư thừa

Bạn chỉ có "lỗi" này ngay từ đầu, vì sự hiểu lầm về những gì đang xảy ra.

Bạn nhận được

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1 vì bạn đã mã hóa thành
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
2 và bây giờ đó là một đối tượng byte.

 >> type("text".encode("utf-8"))
 >> 

Fixes:

  1. Bạn chỉ có thể in chuỗi đầu tiên
  2. Giải mã nó một cách dư thừa sau khi mã hóa

Robert Harvey

175K46 Huy hiệu vàng330 Huy hiệu bạc491 Huy hiệu Đồng46 gold badges330 silver badges491 bronze badges

Đã trả lời ngày 4 tháng 5 năm 2016 lúc 1:31May 4, 2016 at 1:31

PythonistaccothonistaPythonista

11.3k2 Huy hiệu vàng30 Huy hiệu bạc49 Huy hiệu đồng2 gold badges30 silver badges49 bronze badges

5

Bạn có thể thử một trong các cách tiếp cận sau để loại bỏ B 'khỏi chuỗi byte. Kết quả là, bạn sẽ nhận được một chuỗi.

Cách tiếp cận 1: Sử dụng hàm Decode () Using decode() function

>>> t = Subprocess.check_output ('ls', shell = true) >>> tb'compress.py \ n '>>> b = t.decode (' utf-8 ') >>> b'compress. py \ n '
>>> t
b'compress.py\n'
>>> b=t.decode('utf-8')
>>> b
'compress.py\n'

Cách tiếp cận 2: Sử dụng hàm str () Using str() function

>>> t = Subprocess.check_output ('ls', shell = true) >>> tb'compress.py \ n '>>> a = str (t,' utf-8 ') >>> a'compress. py \ n '
>>> t
b'compress.py\n'
>>> a=str(t,'utf-8')
>>> a
'compress.py\n'

Xóa tiền tố 'B' khỏi chuỗi trong Python #

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

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
3 để xóa tiền tố
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1 khỏi đối tượng byte bằng cách chuyển đổi nó thành một chuỗi. Phương thức
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
5 sẽ trả về một chuỗi được giải mã từ đối tượng byte đã cho và sẽ xóa tiền tố
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1.

Copied!

my_bytes = 'bobbyhadz.com'.encode('utf-8') print(my_bytes) # 👉️ b'bobbyhadz.com' print(type(my_bytes)) # 👉️ string = my_bytes.decode('utf-8') print(string) # 👉️ bobbyhadz.com print(type(string)) # 👉️

Các đối tượng byte luôn được tiền tố với

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
7, vì vậy để xóa tiền tố, chúng ta phải chuyển đổi byte thành một chuỗi.

Phương thức byte.decode trả về một chuỗi được giải mã từ các byte đã cho. Mã hóa mặc định là

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
2.

Ngược lại, phương thức str.encode trả về một phiên bản được mã hóa của chuỗi dưới dạng đối tượng byte. Mã hóa mặc định là

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
2.

Copied!

my_bytes = 'bobbyhadz.com'.encode('utf-8') print(my_bytes) # 👉️ b'bobbyhadz.com' string = my_bytes.decode('utf-8') print(string) # 👉️ bobbyhadz.com

Mã hóa là quá trình chuyển đổi

 print b'my secret data'
0 thành đối tượng
 print b'my secret data'
1 và giải mã là quá trình chuyển đổi đối tượng
 print b'my secret data'
1 thành
 print b'my secret data'
0.

Nói cách khác, bạn có thể sử dụng phương pháp

 print b'my secret data'
4 để đi từ
 print b'my secret data'
5 đến
 print b'my secret data'
1 và
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
3 để đi từ
 print b'my secret data'
1 đến
 print b'my secret data'
5.

Ngoài ra, bạn có thể sử dụng lớp

pw_bytes.decode("utf-8")
0.

Xóa tiền tố 'B' khỏi chuỗi bằng cách sử dụng str () #

Sử dụng lớp

pw_bytes.decode("utf-8")
0 để xóa tiền tố
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1 khỏi đối tượng byte, ví dụ:
pw_bytes.decode("utf-8")
3. Lớp
pw_bytes.decode("utf-8")
0 sẽ xóa tiền tố
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1 bằng cách chuyển đổi đối tượng byte thành một chuỗi.

Copied!

my_bytes = bytes('bobbyhadz.com', encoding='utf-8') print(my_bytes) # 👉️ b'bobbyhadz.com' print(type(my_bytes)) # 👉️ string = str(my_bytes, encoding='utf-8') print(string) # 👉️ bobbyhadz.com print(type(string)) # 👉️

Lớp STR trả về một phiên bản chuỗi của đối tượng đã cho. Nếu một đối tượng không được cung cấp, lớp sẽ trả về một chuỗi trống.

Cú pháp để sử dụng lớp byte là như nhau. Lớp trả về một đối tượng byte, vì vậy tiền tố

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1 được thêm vào.

Chúng tôi đã sử dụng mã hóa

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
2 trong các ví dụ. Mã hóa
import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
2 có khả năng mã hóa hơn một triệu điểm mã ký tự hợp lệ trong Unicode.

Bạn có thể xem tất cả các mã hóa tiêu chuẩn trong bảng này của các tài liệu chính thức.

Một số mã hóa phổ biến là

pw_bytes.decode("utf-8")
9,
f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
0 và
f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
1.

Khi giải mã đối tượng byte, chúng ta phải sử dụng cùng một mã hóa được sử dụng để mã hóa chuỗi thành đối tượng byte.

Nếu vì một lý do nào đó, bạn cần xóa tiền tố

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1 theo cách hacky, hãy thử sử dụng hàm
f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
3 với việc cắt chuỗi.

Copied!

my_bytes = bytes('bobbyhadz.com', encoding='utf-8') print(my_bytes) # 👉️ b'bobbyhadz.com' string = repr(my_bytes)[2:-1] print(string) # 👉️ bobbyhadz.com

Hàm repr () trả về biểu diễn chuỗi chính tắc của đối tượng.

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
0

Khi chúng ta có đối tượng byte được chuyển đổi thành một chuỗi, chúng ta có thể sử dụng cắt chuỗi để loại bỏ tiền tố

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1.

Cú pháp để cắt chuỗi là

f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
5.

Chỉ số

f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
6 bao gồm, trong khi chỉ số
f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
7 là độc quyền (lên đến, nhưng không bao gồm).

Các chỉ mục Python là dựa trên 0, do đó, ký tự đầu tiên trong một chuỗi có chỉ số

f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
8 và ký tự cuối cùng có chỉ số là
f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)
9 hoặc
 >> type("text".encode("utf-8"))
 >> 
0.

Slice

 >> type("text".encode("utf-8"))
 >> 
1 bắt đầu tại Index
 >> type("text".encode("utf-8"))
 >> 
2 và đi lên, nhưng không bao gồm ký tự cuối cùng trong chuỗi.

Về cơ bản, chúng tôi loại trừ ký tự

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)
1 và các trích dẫn.

Làm thế nào để bạn in mà không có B trong Python?

Làm cách nào để in chuỗi byte mà không có tiền tố B 'trong Python 3 ?..
Lưu ý bên lề: Tôi không nghĩ bất kỳ câu trả lời nào khác thực sự trả lời câu hỏi. - Mateen Ulhaq. ....
Tôi nghĩ rằng tôi sẽ đồng ý: giải pháp của bạn, cụ thể là repr (x) [2: -1], tạo ra một đối tượng str sẽ in như mong muốn. ....
Ngoài ra, in (repr (b "\ x01" ..

Làm thế nào để tôi thoát khỏi biểu tượng trong Python?

Bạn có thể xóa một ký tự khỏi chuỗi python bằng cách sử dụng thay thế () hoặc dịch ().Cả hai phương thức này thay thế một ký tự hoặc chuỗi bằng một giá trị đã cho.Nếu một chuỗi trống được chỉ định, ký tự hoặc chuỗi bạn chọn sẽ bị xóa khỏi chuỗi mà không cần thay thế.using replace() or translate(). Both these methods replace a character or string with a given value. If an empty string is specified, the character or string you select is removed from the string without a replacement.

Làm thế nào để bạn xử lý B trong Python?

Sử dụng câu lệnh B "trong Python ký hiệu B" được sử dụng để chỉ định chuỗi byte trong Python.So với các chuỗi thông thường, có các ký tự ASCII, chuỗi byte là một mảng các biến byte trong đó mỗi phần tử thập lục phân có giá trị từ 0 đến 255. The b" notation is used to specify a bytes string in Python. Compared to the regular strings, which have ASCII characters, the bytes string is an array of byte variables where each hexadecimal element has a value between 0 and 255.

B trong đầu ra Python là gì?

Trong Python, ký tự 'B' trước khi một chuỗi được sử dụng để chỉ định chuỗi dưới dạng chuỗi byte byte.byte string“.