تبدیل آرایه بایت به یک رشته در زبان پایتون

تبدیل آرایه بایت به یک رشته در زبان پایتون

0 ۰
۰
من برای گرفتن خروجی استاندارد از یک برنامه دیگر در سیستم عامل از کد زیر استفاده می کنم:
>>> from subprocess import *
>>> command_stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]

 متد ()communicate یک آرایه از بایت بر می گردونه:

>>> command_stdout
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2\n'
 با این حال، من می خوام یک خروجی به صورت رشته نرمال پایتون داشته باشم که بعد بتونم از اون به صورت زیر پرینت بگیرم:
>>> print(command_stdout)
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2
من از متد ()binascii.b2a_qp استفاده کردم و همچنان همان آرایه بایت رو دریافت میکنم که خروجیش مناسب نیست:
>>> binascii.b2a_qp(command_stdout)
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2\n'
 چطور می تونم آرایه بایت رو به رشته (string) تبدیل کنم؟

1
0 ۰
برای اینکار نیاز هست object آرایه بایت رو برای تولید یک رشته به صورت زیر (با انکودینگ مناسب، مثلا UTF8) رمزگشایی کنید:
>>> b"abcde"
b'abcde'

# utf-8 is used here because it is a very common encoding, but you
# need to use the encoding your data is actually in.
>>> b"abcde".decode("utf-8") 
'abcde'

 

امکان پاسخ دهی به این سوال مسدود شده است


برای ارسال پاسخ برای این سوال باید وارد سایت شوید. برای وارد شدن به سایت نیاز به حساب کاربری سایت سوالات دارید. برای ساختن حساب و یا با وارد شدن با حساب کاربری خود روی دکمه زیر کلیک کنید