peek تبقي موضع القارئ المنطقي؛ ملء مخزنه قد يحرك موضع المصدر إلى الأمام، كما في تجربتنا. [1]
الخلاصة السريعة
موضع القارئ؛ المصدر يتقدم هنا. [1]
- peek تبقي موضع القارئ المنطقي؛ ملء مخزنه قد يحرك موضع المصدر إلى الأمام، كما في تجربتنا. [1]
- على CPython 3.12.14، raw مخزن BytesIO يحوي b"budleaf"؛ reader من BufferedReader بحجم 4 بايت. [1]
- reader.peek(2) تعطي b"budl"؛ reader.tell() تساوي 0، بينما raw.tell() تساوي 4. [1]
- reader.read(1) التالية تعطي b"b"؛ موضع القارئ يصبح 1، والمصدر يبقى 4؛ البايت الأول لم يُتجاوز. [1]
- كمية peek قد تقل أو تزيد عن الطلب. تحكم بمصدر جديد دون الغلاف: read(2) تعطي b"bu" والموضع 2. تجربة ذاكرة فقط. [1]
القارئ والمصدر
peek تبقي موضع القارئ المنطقي؛ ملء مخزنه قد يحرك موضع المصدر إلى الأمام، كما في تجربتنا. [1]
مخزن المثال
على CPython 3.12.14، raw مخزن BytesIO يحوي b"budleaf"؛ reader من BufferedReader بحجم 4 بايت. [1]
بعد المعاينة
reader.peek(2) تعطي b"budl"؛ reader.tell() تساوي 0، بينما raw.tell() تساوي 4. [1]
import io raw=io.BytesIO(b"budleaf") reader=io.BufferedReader(raw,buffer_size=4) print(reader.peek(2)) print(reader.tell(),raw.tell()) [1]

القراءة والتحكم
reader.read(1) التالية تعطي b"b"؛ موضع القارئ يصبح 1، والمصدر يبقى 4؛ البايت الأول لم يُتجاوز. [1]
print(reader.read(1)) print(reader.tell(),raw.tell()) direct=io.BytesIO(b"budleaf") print(direct.read(2),direct.tell()) [1]
كمية peek قد تقل أو تزيد عن الطلب. تحكم بمصدر جديد دون الغلاف: read(2) تعطي b"bu" والموضع 2. تجربة ذاكرة فقط. [1]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
