GNU/Linux >> Belajar Linux >  >> Linux

Tidak Dapat Membagi, Diperlukan objek seperti byte, bukan 'str'

Gunakan decode() dengan benar:baik dalam dua langkah (jika Anda ingin menggunakan kembali blah ):

blah = blah.decode()
splitblah = blah.split("\n")
# other code that uses blah

atau sebaris (jika Anda membutuhkannya untuk sekali pakai):

splitblah = blah.decode().split("\n")

Masalah Anda dalam menggunakan decode() adalah bahwa Anda tidak menggunakan nilai pengembaliannya. Perhatikan bahwa decode() tidak tidak ubah objek (blah ) untuk menetapkan atau meneruskannya ke sesuatu:

# WRONG!
blah.decode()

LIHAT JUGA:
decode dokumen.


Jika pertanyaan Anda bermuara pada ini:

Saya sudah mencoba menggunakan decode dan encode tetapi saya masih berteriak bahwa metode split tidak dapat menggunakan tipe data.

Kesalahan yang ada dapat ditunjukkan dengan kode berikut:

>>> blah = b'hello world'  # the "bytes" produced by check_output
>>> blah.split('\n')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'

Untuk membagi bytes , sebuah bytes objek juga harus disediakan. Cara mengatasinya sederhana:

>>> blah.split(b'\n')
[b'hello world']

Linux
  1. Tidak Bisa Instal Printer Hp:Instalasi Plugin Tidak Berhasil?

  2. Driver Kartu Nvidia Tidak Terdeteksi:Tidak Ada Pengaturan &Tidak Dapat Menggunakan HDMI?

  3. Tidak Bisa Tambah Ppa Error User Atau Team Tidak Ada?

  1. Kesalahan Linux saat memuat pustaka bersama:tidak dapat membuka file objek bersama:Tidak ada file atau direktori tersebut

  2. libaio.so.1:tidak dapat membuka file objek bersama

  3. libpulse.so.0:tidak dapat membuka file objek bersama:Tidak ada file atau direktori tersebut

  1. ImportError:libtk8.6.so:tidak dapat membuka file objek bersama:Tidak ada file atau direktori tersebut

  2. KESALAHAN:ld.so:objek 'libgtk3-nocsd.so.0' dari LD_PRELOAD tidak dapat dimuat sebelumnya

  3. bash:ulimit:ukuran file inti:tidak dapat mengubah batas:Operasi tidak diizinkan