স্ট্রিংয়ের বিষয়বস্তু সহ আমি কীভাবে কোনও ফাইলের মতো বস্তু (ফাইলের মতো একই হাঁসের ধরণ) তৈরি করব?
স্ট্রিংয়ের বিষয়বস্তু সহ আমি কীভাবে কোনও ফাইলের মতো বস্তু (ফাইলের মতো একই হাঁসের ধরণ) তৈরি করব?
উত্তর:
পাইথন ২.x এর জন্য স্ট্রিংআইও মডিউলটি ব্যবহার করুন । উদাহরণ স্বরূপ:
>>> from cStringIO import StringIO
>>> f = StringIO('foo')
>>> f.read()
'foo'
আমি সিস্ট্রিংআইও (যা দ্রুত) ব্যবহার করি তবে নোট করুন যে এটি ইউনিকোড স্ট্রিংকে গ্রহণ করে না যা প্লেইন ASCII স্ট্রিং হিসাবে এনকোড করা যায় না । (আপনি "সিস্ট্রিংআইও" থেকে "স্ট্রিংআইও থেকে" পরিবর্তন করে স্ট্রিংআইওতে যেতে পারেন))
পাইথন ৩.x এর জন্য io
মডিউলটি ব্যবহার করুন ।
f = io.StringIO('foo')
io.StringIO(u'foo')
আমি এটি ব্যবহার করব
যদি আপনার ফাইল-জাতীয় অবজেক্টটি বাইট ধারণ করে বলে মনে করা হয় তবে স্ট্রিংটি প্রথমে বাইট হিসাবে এনকোড করা উচিত এবং তার পরিবর্তে একটি বাইটসআইও অবজেক্ট ব্যবহার করা যেতে পারে। পাইথন 3 এ:
from io import BytesIO
string_repr_of_file = 'header\n byline\n body\n body\n end'
function_that_expects_bytes(BytesIO(bytes(string_repr_of_file,encoding='utf-8')))
দুটি ভাল উত্তর। আমি একটি সামান্য কৌশল যুক্ত করব - যদি আপনার একটি সত্যিকারের ফাইল অবজেক্টের প্রয়োজন হয় (কিছু পদ্ধতি কেবল একটি ইন্টারফেস নয়, একটি প্রত্যাশা করে) তবে অ্যাডাপ্টার তৈরির উপায় এখানে রয়েছে: