بعد فتح ملف CSV واختيار gzip أو ZIP، يُنزَّل الملف المضغوط فور جاهزيته: يصبح orders.csv orders.csv.gz أو orders.zip. وللاتجاه المعاكس، يُفتح ملف .gz أو .zip فتُستعاد الملفات التي بداخله. لا تُحلَّل البايتات ولا تتغير، فيعود الترميز والمحدِّد وعلامات الاقتباس ونهايات الأسطر وأي علامة ترتيب بايت كما كانت تمامًا. يجري الضغط في متصفحك ولا يُرفع الملف أبدًا.
طريقة ضغط ملف CSV أو استعادته
- افتح ملفًا أو أفلته. الملف الذي ينتهي بـ
.gz أو .zip يحوّل الأداة إلى الاستعادة؛ وأي ملف آخر يُضغط. - اختر gzip أو ZIP ومستوى ضغط من 1 إلى 9. الافتراضي 6، وهو التوازن المعتاد بين الحجم والوقت.
- ابدأ المهمة. تُنزَّل النتيجة، وتعرض الأداة الحجم قبل الضغط وبعده والنسبة بينهما.
Gzip أم ZIP؟
Gzip (.csv.gz) | ملف مضغوط واحد، معرَّف في RFC 1952. تقرأ أدوات سطر الأوامر ومستودعات البيانات وكثير من مسارات الاستيراد ملفات .csv.gz مباشرة. ويُخزَّن اسم الملف الأصلي بداخله. |
|---|---|
ZIP (.zip) | أرشيف فيه عنصر واحد باسم الملف الأصلي. يُفتح بنقرة مزدوجة على Windows وmacOS، فيناسب مرفقات البريد الإلكتروني ومن لا يستخدمون سطر الأوامر. |
| مستوى الضغط | المستوى 1 يستغرق أقل وقت، والمستوى 9 يبذل أقصى جهد لملف أصغر. وفي ملفات CSV المعتادة يكون الفرق بين 6 و9 صغيرًا، وقد لا يوجد فرق في الملف الصغير. |
| الاستعادة | يعيد ملف .gz الملف الواحد الذي بداخله. ويعيد ملف .zip كل الملفات التي يضمها؛ وتُتخطّى المجلدات وتُحذف مسارات المجلدات من الأسماء. يُنزَّل الملف الواحد فورًا، أما الملفات المتعددة فتُعرض في قائمة مع زر تنزيل لكل منها. |
ضغط الملف نفسه بالمستوى نفسه يعطي البايتات نفسها في كل مرة، لأن الطوابع الزمنية المكتوبة في ترويسة gzip وعناصر ZIP ثابتة وليست الوقت الحالي. وهذا يجعل الناتج مناسبًا لحساب المجموع الاختباري أو للحفظ في نظام إدارة الإصدارات.
ما الذي يُحفظ كما هو تمامًا
- يُعامَل الملف كبايتات لا كجدول، فلا يُعاد ترميز أي شيء: الملف المصدَّر بترميز Windows-1252 أو Windows-1256 أو Shift_JIS، والمحدِّد الفاصلة المنقوطة، ونهايات الأسطر CRLF، وعلامة ترتيب البايت UTF-8، كلها تُستعاد دون تغيير. ولا تُمس الأصفار في بداية القيم والمعرّفات الطويلة لأن أي قيمة لا تُقرأ أصلًا.
- فواصل الأسطر داخل علامات الاقتباس وعلامات الاقتباس الشاردة لا تهم في الضغط؛ فحتى ملف CSV المعيب يُضغط ويُستعاد كما هو. ولفحص الملف نفسه استخدم التحقق من CSV.
- يخزّن gzip الاسم بترميز Latin-1 كما يشترط RFC 1952، لذا قد لا يعود اسم الملف المكتوب بنظام كتابة آخر، كالعربية أو الصينية أو السيريلية، سليمًا. استخدم ZIP مع هذه الأسماء، أو أعِد تسمية الملف بعد الاستعادة.
- إذا ضم ملف ZIP ملفين بالاسم نفسه في مجلدين مختلفين، يُستعاد كلاهما بذلك الاسم. أعِد تسميتهما عند التنزيل.
أخطاء الاستعادة وضعف الضغط
- هذا ليس ملف gzip أو ZIP. البايتات الأولى في الملف ليست توقيع gzip أو ZIP؛ فقد يكون ملف CSV عاديًا باسم ينتهي بـ
.gz، أو أرشيفًا من نوع آخر مثل 7z أو RAR. اختر gzip أو ZIP لضغطه بدلًا من ذلك. - بيانات gzip تالفة أو ناقصة. المجموع الاختباري أو الطول المخزَّن في نهاية الملف غير مطابق، وهذا يعني عادةً أن التنزيل انقطع. نزّل الملف من جديد.
- بيانات ZIP تالفة أو تستخدم طريقة غير مدعومة. لا يمكن استعادة إلا العناصر المخزَّنة دون ضغط أو المضغوطة بطريقة Deflate؛ أما طرق مثل Deflate64 وBZIP2 وLZMA فغير مدعومة. ولا تُدعم ملفات ZIP المحمية بكلمة مرور أيضًا: استخرجها بأداة أرشيف تطلب كلمة المرور.
- الملف المضغوط أصغر بقليل فقط. ملفات CSV التي فيها قيم مختلفة كثيرة، مثل المعرّفات العشوائية أو قيم التجزئة، تنضغط أقل من البيانات المتكررة، والملفات الصغيرة جدًا تكسب القليل لأن الصيغة تضيف ترويسة ثابتة. ويمكن أن يقلّص التحويل إلى Parquet البيانات العمودية ذات الأنواع أكثر.
الملفات الكبيرة والخصوصية
لا يوجد هنا حد 25 ميغابايت، لأن الملف لا يُحمَّل كجدول أبدًا: يُقرأ على أجزاء من 4 ميغابايت ويُضغط أو يُستعاد تدفقيًا. وتتوقف الاستعادة برسالة خطأ متى تجاوزت البيانات المستعادة 4 غيغابايت إجمالًا، وهذا يحمي علامة التبويب من «قنابل ZIP» التي تتمدد إلى أحجام هائلة.
يجري العمل في عامل خلفي داخل علامة التبويب هذه، ويوقفه زر إلغاء. لا يُرفع أي شيء. ولتصغير ملف كبير بتقطيعه إلى أجزاء بدلًا من ذلك، استخدم تقسيم ملفات CSV، التي يمكنها أيضًا تنزيل الأجزاء في ملف ZIP واحد.
مثال: ملف مُصدَّر من 12 صفًا بمستويات ضغط مختلفة
ملف طلبات مُصدَّر من 12 صفًا بفواصل منقوطة وفواصل عشرية ورموز SKU مسبوقة بأصفار (تظهر الصفوف الأولى فقط)، حجمه الإجمالي 374 بايت. يعطي gzip الحجم نفسه، 185 بايت، في المستويات 1 و6 و9 لأن الملف صغير جدًا؛ ويضيف ZIP ترويسة أرشيف أكبر. واستعادة أي من الملفين تعيد البايتات الـ374 كلها دون تغيير.
order_id;region;sku;qty;amount SO-1001;North;00123;1;19,90 SO-1002;South;00124;2;38,90 SO-1003;East;00125;3;57,90 SO-1004;West;00123;4;76,90 …
orders-march.csv.gz 185 bytes (49.5 %), restores to orders-march.csv orders-march.zip 296 bytes (79.1 %), one entry: orders-march.csv Restored orders-march.csv 374 bytes, identical to the original
أسئلة وأجوبة
هل يمكن ضغط عدة ملفات CSV في ملف ZIP واحد؟
ليس في هذه الصفحة: فهي تضغط ملفًا واحدًا في كل مرة. أداة تقسيم ملفات CSV تنزّل كل أجزائها في ملف ZIP واحد، واستعادة ملف ZIP هنا تعيد كل الملفات التي بداخله.
هل يبقى ملف .csv.gz ملف CSV؟
هو ملف CSV مضغوط بصيغة gzip. تقرؤه مباشرة الأدوات التي تدعم gzip، مثل gunzip وأوامر الاستيراد في أغلب قواعد البيانات ومكتبات البيانات؛ أما غيرها فيحتاج إلى استعادته إلى .csv أولًا، وهو ما تفعله هذه الصفحة.
هل يغيّر الضغط بياناتي؟
لا. ضغط gzip وZIP بلا فقدان، وهذه الأداة لا تحلّل ملف CSV أبدًا، فالملف المستعاد هو تسلسل البايتات نفسه الموجود في الأصل.