تقنية

gzip.compress في بايثون: هل mtime يسجل مدة الضغط؟

mtime مختار وقيمة الرأس 7
الحقل المخزن. [1] [2]

الطابع الزمني في الرأس يختلف عن قياس زمن التنفيذ. [1] [2]

الخلاصة السريعة

لا؛ mtime قيمة وقت تعديل تسجل في الرأس. [1] [2]

  • نضغط الحمولة b'bud' في الذاكرة. [1] [2]
  • نختار mtime=7 صراحةً. [1] [2]
  • قراءة البايتات data[4:8] تعيد 7. [1] [2]
  • فك البيانات يعيد b'bud'. [1] [2]
  • اختبرنا 3.12.14؛ لم نقس مدة الضغط. [1] [2]

المثال

import gzip
data=gzip.compress(b'bud',mtime=7)
print(int.from_bytes(data[4:8],'little'))
print(gzip.decompress(data))

[1] [2]

القيمة في الرأس

المصدر هنا يضع القيمة المختارة في حقل الرأس. المخرجان 7 ثم b'bud'. نقرأ الحقل بترتيب little؛ الرقم ليس عدد الثواني التي استغرقها الضغط. [1] [2]

فك الحمولة bud دون قياس زمن
الحمولة. [1] [2]

حدود القراءة

القيمة مدخل مؤلف، وليست وقت تعديل ملف فحصناه. لم ننشئ ملفًا ولم نقارن السرعة أو حجم الضغط. لا نعمم افتراضيات إصدارات أخرى. [1] [2]

المراجع

  1. Python 3.12: gzip mtime
  2. CPython 3.12.14: gzip.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.