b
ইঙ্গিত করে যে কি আছে bytes
যা একটি বাইনারি বদলে ইউনিকোড অক্ষর একটি স্ট্রিং বাইটের অনুক্রম হয়। অক্ষর নয়, আউটপুট বাইটগুলিকে সাবস্ক্রোস করে, তাই communicate()
এটিই ফিরে আসবে।
bytes
টাইপ সরাসরি নয় print()
তাই আপনি দেখানো হচ্ছে করছি, সক্ষম repr
এর bytes
আপনার টি আছে। আপনি যদি সাব-প্রসেস থেকে প্রাপ্ত বাইটগুলির এনকোডিং জানেন তবে আপনি decode()
সেগুলি মুদ্রণযোগ্য হিসাবে রূপান্তর করতে ব্যবহার করতে পারেন str
:
>>> print(b'hi\n'.decode('ascii'))
hi
অবশ্যই, এই সুনির্দিষ্ট উদাহরণটি কেবলমাত্র তখনই কাজ করে যদি আপনি প্রকৃতপক্ষে উপ-প্রসেস থেকে ASCII পান। এটি ASCII না হলে আপনি একটি ব্যতিক্রম পাবেন:
>>> print(b'\xff'.decode('ascii'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0…
নতুন লাইনটি echo hi
আউটপুট রয়েছে তারই একটি অংশ । echo
কাজটি হ'ল আপনি যে পরামিতিগুলি পাস করেছেন তা আউটপুট করা, তার পরে একটি নতুন লাইন। আপনি যদি প্রক্রিয়া আউটপুটটির চারপাশে সাদা স্পেসে আগ্রহী না হন তবে আপনি এটির strip()
মতো ব্যবহার করতে পারেন :
>>> b'hi\n'.strip()
b'hi'