ساختار - تفسیر بایت ها به عنوان داده های باینری بسته بندی شده

ساخت وبلاگ

این ماژول بین مقادیر پایتون و ساختارهای C که به صورت اشیاء بایت پایتون نمایش داده می شوند، تبدیل می کند. رشته های فرمت فشرده تبدیل های مورد نظر به/از مقادیر پایتون را توصیف می کنند. توابع و اشیاء ماژول را می توان برای دو برنامه کاملاً متمایز، تبادل داده با منابع خارجی (فایل ها یا اتصالات شبکه) یا انتقال داده بین برنامه پایتون و لایه C استفاده کرد.

وقتی کاراکتر پیشوندی داده نمی شود، حالت بومی پیش فرض است. داده ها را بر اساس پلتفرم و کامپایلری که مفسر پایتون بر روی آن ساخته شده است، بسته بندی یا باز می کند. نتیجه بسته بندی یک ساختار C داده شده شامل بایت های پد است که تراز مناسب را برای انواع C درگیر حفظ می کند. به طور مشابه، هنگام باز کردن بسته بندی، تراز در نظر گرفته می شود. در مقابل، هنگام برقراری ارتباط داده ها بین منابع خارجی، برنامه نویس مسئول تعریف مرتب سازی بایت ها و padding بین عناصر است. برای جزئیات، ترتیب، اندازه و تراز بایت را ببینید.

چندین تابع ساختار (و متدهای Struct) یک آرگومان بافر می گیرند. این به اشیایی اشاره دارد که پروتکل بافر را پیاده سازی می کنند و یک بافر خواندنی یا خواندنی را ارائه می دهند. رایج ترین انواعی که برای این منظور استفاده می شوند، بایت ها و آرایه های بایتی هستند، اما بسیاری از انواع دیگر که می توانند به عنوان آرایه ای از بایت ها مشاهده شوند، پروتکل بافر را پیاده سازی می کنند، به طوری که می توان آنها را بدون کپی اضافی از یک شی بایت خواند/پر کرد.

توابع و استثنائات¶

ماژول استثناها و توابع زیر را تعریف می کند:

ساختار استثناخطا ¶

استثناء مطرح شده در مناسبت های مختلف؛آرگومان رشته ای است که اشتباه را توصیف می کند.

یک شی بایت حاوی مقادیر v1 , v2 , ... بسته بندی شده بر اساس قالب رشته را برگردانید. آرگومان ها باید دقیقاً با مقادیر مورد نیاز قالب مطابقت داشته باشند.

مقادیر v1 , v2 , … را با توجه به فرمت رشته فرمت بسته بندی کنید و بایت های بسته بندی شده را در بافر بافر قابل نوشتن با شروع افست موقعیت بنویسید. توجه داشته باشید که offset یک آرگومان لازم است.

ساخت. باز کردن (فرمت، بافر) ¶

بسته بندی بافر بافر (احتمالاً بسته بندی شده توسط pack (قالب، . )) مطابق با فرمت رشته ای. نتیجه یک تاپل است حتی اگر دقیقاً یک مورد داشته باشد. اندازه بافر در بایت باید با اندازه مورد نیاز فرمت مطابقت داشته باشد، همانطور که توسط calcsize() منعکس می شود.

ساخت. unpack_from ( قالب , / , بافر , افست = 0 ) ¶

با توجه به قالب رشته Formart ، از بافر شروع کنید. نتیجه حتی اگر دقیقاً یک مورد باشد ، یک ضربه محکم و ناگهانی است. اندازه بافر در بایت ، با شروع از موقعیت جبران موقعیت ، باید حداقل اندازه مورد نیاز فرمت باشد ، همانطور که توسط CALCSIZE منعکس می شود ().

ساختار. iter_unpack (قالب ، بافر)

با توجه به فرمت رشته Format ، از بافر بافر خارج می شوید. این عملکرد یک تکرار کننده را باز می گرداند که تا زمانی که تمام محتوای آن مصرف شود ، تکه های به اندازه یکسان را از بافر می خواند. اندازه بافر در بایت ها باید چند اندازه از اندازه مورد نیاز فرمت باشد ، همانطور که توسط Calcsize () منعکس شده است.

هر تکرار همانطور که توسط رشته فرمت مشخص شده است ، یک Tuple را به دست می آورد.

جدید در نسخه 3. 4.

ساختار. CALCSSIZE (قالب)

اندازه ساختار (و از این رو از شیء بایت تولید شده توسط بسته (فرمت ،.)) متناسب با فرمت رشته فرمت را برگردانید.

رشته های قالب

رشته های قالب طرح داده را هنگام بسته بندی و باز کردن داده ها توصیف می کنند. آنها از کاراکترهای فرمت ساخته شده اند که نوع داده های بسته بندی شده/بسته بندی شده را مشخص می کنند. علاوه بر این ، شخصیت های خاص ترتیب ، اندازه و تراز بایت را کنترل می کنند. هر رشته فرمت از یک شخصیت پیشوند اختیاری تشکیل شده است که خصوصیات کلی داده ها و یک یا چند کاراکتر فرمت را توصیف می کند که مقادیر داده واقعی و بالشتک را توصیف می کند.

ترتیب بایت ، اندازه و تراز

به طور پیش فرض ، انواع C در قالب بومی دستگاه و ترتیب بایت دستگاه نشان داده می شوند و در صورت لزوم با پرش بایت های پد به درستی تراز می شوند (طبق قوانین استفاده شده توسط کامپایلر C). این رفتار به گونه ای انتخاب شده است که بایت های یک ساختار بسته بندی شده دقیقاً با طرح حافظه ساختار C مربوطه مطابقت داشته باشد. این که آیا استفاده از سفارشات بایت بومی و بالشتک یا قالب های استاندارد بستگی به کاربرد دارد.

از طرف دیگر ، از اولین شخصیت رشته فرمت می توان برای نشان دادن ترتیب بایت ، اندازه و تراز داده های بسته بندی شده ، مطابق جدول زیر استفاده کرد:

تجارت گزینه های دودویی در ایران...
ما را در سایت تجارت گزینه های دودویی در ایران دنبال می کنید

برچسب : نویسنده : زین‌العابدین مراغه‌ای بازدید : <-PostHit-> تاريخ : دوشنبه 2 مرداد 1402 ساعت: 22:07