7
2
0
خروجی استاندارد یه برنامه خارجی رو به یه شیء بایتز (bytes) گرفتم:
>>> from subprocess import *
>>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]
>>> 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(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
چطوری میتونم شیء bytes رو تو پایتون ۳ به str تبدیل کنم؟
2
0
پاسخ کاربردی
شیء بایتز رو دیکد کن تا یه رشته تولید بشه:
>>> b"abcde".decode("utf-8")
'abcde'
مثال بالا فرض میکنه که شیء بایتز در کدگذاری UTF-8 هست، چون این یک کدگذاری رایجه. اما باید از کدگذاری استفاده کنی که دادههات واقعاً تو اون هستن!
ارسال پاسخ به سوال بالا