الجمعة، 18 أكتوبر 2024

كيفية ضغط ملفات PDF باستخدام بايثون؟

 لنفترض أن لديك ملف PDF، ولكنه كبير الحجم وترغب في ضغطه (ربما تريد تقليل حجمه للسماح بنقل أسرع عبر الإنترنت، أو ربما لتوفير مساحة التخزين).

الأمر الأكثر تحديًا هو أن نفترض أن لديك ملفات PDF متعددة تريد ضغطها.

توجد خيارات متعددة عبر الإنترنت، ولكنها تسمح عادةً بمعالجة عدد محدود من الملفات في المرة الواحدة. وبالطبع هناك أيضًا الوقت الإضافي المطلوب لتحميل الملفات الأصلية، ثم تنزيل النتائج. وبالطبع، ربما لا تشعر بالراحة عند مشاركة ملفاتك مع الإنترنت.

لحسن الحظ، يمكننا استخدام بايثون لمعالجة كل هذه المشكلات. ولكن قبل أن نتعلم كيفية القيام بذلك، دعونا أولاً نتعلم القليل عن ملفات PDF.

نبذة عن ضغط ملفات PDF

وفقًا لدوف إسحاقس، العالم الرئيسي السابق في شركة Adobe (انظر مناقشته هنا)، فإن مستندات PDF مضغوطة بالفعل إلى حد كبير.

إن أجزاء النصوص والرسومات المتجهة في المستندات مضغوطة داخليًا بالفعل، لذا فإن فرص التحسين هنا ضئيلة.

بدلاً من ذلك، يتم تحقيق أي تحسينات في ضغط الملفات من خلال ضغط أجزاء الصور من مستندات PDF، إلى جانب احتمال فقدان جودة الصورة.

قد يكون الضغط ممكنًا، ولكن يجب على المستخدم الاختيار بين مقدار الضغط مقابل مقدار فقدان جودة الصورة المقبول.

الإعدادات

كتب مبرمج يُدعى Theeko74 نصًا برمجيًا بلغة بايثون يُسمى “pdf_compressor.py”. هذا النص البرمجي عبارة عن غلاف لوظائف ghostscript التي تقوم بالعمل الفعلي المتمثل في ضغط ملفات PDF.

يتم تقديم هذا البرنامج النصي بموجب ترخيص MIT وهو مجاني للاستخدام حسب رغبة المستخدم.

تلميح: تأكد من تثبيت ghostscript على جهاز الكمبيوتر لديك. لتثبيت ghostscript، اتبع هذا الدليل المفصل ثم عد بعد ذلك.

الآن قم بتنزيل pdf_compressor.py من GitHub.

في النهاية سوف نقوم بكتابة نص برمجي بلغة بايثون لأداء عملية الضغط.

لذا نقوم بإنشاء دليل لحمل البرنامج النصي، ونستخدم محررنا المفضل أو IDE لإنشائه (يستخدم هذا المثال سطر أوامر Linux لإنشاء الدليل، ويستخدم vim كمحرر لإنشاء البرنامج النصي “bpdfc.py”؛ استخدم اختيارك المفضل لإنشاء الدليل وإنشاء البرنامج النصي داخله):

1
2
3
$ mkdir batchPDFcomp
$ cd batchPDFcomp
$ vim bpdfc.py

عندما نكتب البرنامج النصي، سنقوم باستيراد “pdf_compressor.py” كوحدة نمطية داخله.

للتحضير لذلك يجب علينا إنشاء دليل فرعي أسفل دليل البرنامج النصي الخاص بـ Python.

بالإضافة إلى ذلك، سنحتاج إلى نسخ pdf_compressor.py إلى هذا الدليل الفرعي، وسنحتاج إلى إنشاء ملف __init__.py داخل نفس الدليل الفرعي:

1
2
3
4
$ mkdir pdfc
$ cp ~/Downloads/pdf_compressor.py ~/batchPDFcomp/pdfc/
$ cd pdfc
$ vim __init__.py

ما قمنا به هنا هو إنشاء حزمة محلية pdfc تحتوي على وحدة pdf_compressor.py.

💡 ملاحظة: يشير وجود الملف init.py إلى Python أن هذا الدليل هو جزء من الحزمة، ويجب البحث هناك عن الوحدات النمطية.

نحن الآن جاهزون لكتابة النص الخاص بنا.

برنامج ضغط PDF في بايثون

هنا هو البرنامج النصي:

1
2
from pdfc.pdf_compressor import compress
compress('Finxter_WorldsMostDensePythonCheatSheet.pdf', 'Finxter_WorldsMostDensePythonCheatSheet_compr.pdf', power=4)

كما ترى، إنه نص قصير جدًا.

أولاً نقوم باستيراد وظيفة “compress” من وحدة “pdf_compressor”.

ثم نستدعي وظيفة “compress”. تأخذ الوظيفة كوسائط: مسار ملف الإدخال، ومسار ملف الإخراج، ووسيطة “power” التي تحدد الضغط على النحو التالي، من أقل ضغط إلى أعلى ضغط (وفقًا للوثائق الموجودة في البرنامج النصي):

مستويات الضغط:

  • 0: default
  • 1: prepress
  • 2: printer
  • 3: ebook
  • 4: screen

تشغيل البرنامج النصي

الآن يمكننا تشغيل البرنامج النصي الخاص بنا:

1
2
3
4
5
6
$  python bpdfc.py
Compress PDF...
Compression by 51%.
Final file size is 0.2MB
Done.
$

لقد قمنا بضغط مستند PDF واحد فقط في هذا المثال، ولكن عن طريق تعديل البرنامج النصي للتنقل عبر مستندات PDF متعددة، يمكنك ضغط ملفات متعددة في وقت واحد.

نأمل أن تكون قد وجدت هذه المقالة مفيدة. نشكرك على القراءة، ونتمنى لك برمجة سعيدة!

السبت، 12 أكتوبر 2024

كيفية تحديد الصفوف من إطار بيانات استنادًا إلى قيم الأعمدة

 إطار البيانات هو بنية بيانات ثنائية الأبعاد غير قابلة للتغيير وغير متجانسة بشكل عام. يحتوي على محاور مُسمَّاة – صفوف وأعمدة. يتألف إطار بيانات Pandas من ثلاثة أجزاء: البيانات والصفوف والأعمدة.

دعنا ننشئ إطار بيانات. سنستخدم إطار البيانات التالي في جميع أنحاء المقالة.

الأربعاء، 4 سبتمبر 2024

تعلم بايثون يجعلك أكثر ذكاءً

 إن دماغنا يشبه العضلة؛ فهو ينكمش دون ممارسة الرياضة. في هذه المقالة، سأخبرك بما يجب عليك فعله لإرهاق عقلك قليلاً وبناء عضلات فكرية بدلاً من التمرير بلا تفكير على هاتفك الذكي. متع دماغك باللياقة البدنية مع بايثون!

إن تعلم أشياء جديدة يعد فكرة جيدة دائمًا. ولكن بعض الخيارات أفضل لنا من غيرها. خذ البرمجة على سبيل المثال. هل تعلم أنه عندما تتعلم بايثون، فأنت بذلك تمرن عقلك على الارتقاء إلى المستوى التالي؟

بجدية، الأمر أشبه باللعب في لعبة تقمص الأدوار. بعد القيام ببعض التمارين، قد تلاحظ تحسنًا في “تفكيرك”. لذا، ابدأ في تعلم بايثون! فهو يجعلك أكثر ذكاءً.

لا تصدقني؟ فكر في الآتي:

  • التعلم مفيد لك .
  • تعلم لغات جديدة مفيد لك.
  • تعلم البرمجة مفيد لك.

هل تعلم كيف يمكنك الجمع بين هذه الأنشطة التي تنمي العقل والجسد؟ بالطبع من خلال تعلم لغة بايثون!

يساعدك تعلم لغة بايثون في العديد من الأمور، لذا دعنا نرى كيف ستستفيد منها.

لماذا يجب عليك تعلم البايثون؟

فيما يلي بعض النقاط لمساعدتك على البدء:

  1. إنه يعزز من مسيرتك المهنية. إذا كنت تمتلك مهارة البرمجة بلغة بايثون، فسترتفع على الفور إلى مستوى المحترفين.
  2. قيمة كبيرة، ولا تكلفة على الإطلاق. ستحصل على مجموعة متنوعة من الفوائد من تعلم بايثون. الاستثمار الذي تحتاج إلى القيام به هو بعض الوقت والعزيمة. لكن العائد على الاستثمار هو نسبة حلوة!
  3. يبحث أصحاب العمل عن لغة بايثون. تشير التقارير السنوية إلى أن أصحاب العمل يبحثون عن أشخاص يعرفون كيفية كتابة التعليمات البرمجية بلغة بايثون. لقد كانت هذه اللغة على رأس المهارات الأكثر طلبًا لسنوات حتى الآن.
  4. تكسب المزيد من المال. ومع القوة العظيمة يأتي دخل جيد. وهذا واضح أيضًا في تقارير الصناعة.

حسنًا، دعونا ننتقل مباشرة إلى الموضوع.

كيف يساعدنا تعلم أشياء جديدة على أن نكون أفضل

لا يضغط الدماغ على زر “الانتهاء” في سن الخامسة والعشرين. فخلال معظم حياتنا، يستمر الدماغ في التطور والنمو.

ماذا نعرف عن هذا؟ حسنًا، أجرى بعض الأشخاص بعض الأبحاث. ونحن نعلم الآن أن ممارسة مهارة جديدة تزيد من الميالين في الجسم! حسنًا، هذا شيء حقيقي من مادة الميدي كلوريان (نعم، هذا إشارة إلى حرب النجوم!).

عندما نفكر في أدمغتنا على المستوى المادي، فإننا عادة ما نفكر في “المادة الرمادية”. ويرجع هذا إلى شكل الدماغ من الخارج. ولكن هنا نتحدث عن “المادة البيضاء”، أو الميالين.

عندما نمارس مهارة جديدة، فإننا نمرن أدمغتنا (نتعلم)، ونزيد من كثافة الميالين فيها. والميالين مسؤول عن تحسين توصيل النبضات الكهربائية في أدمغتنا. وقد يقول البعض إنه يجعل النبضات “تقفز”.

إذا لم يكن هذا دليلاً ماديًا على أن التعلم يجعلك أكثر ذكاءً، فأنا لا أعرف ما هو!

تعلم أشياء جديدة يغير طريقة تفكيرك.

ثانيًا، عندما تتعلم أشياء جديدة، فإنك تكسر العادات اليومية. وتخرج عقلك من نمط التفكير المعتاد. وتكتسب عقلية جديدة وتبدأ في إدراك الأشياء في ضوء جديد.

لقد اكتسبت عقلية جديدة لإنجاز الأمور. وقد ساعدتني هذه العقلية في إعادة تقييم جهودي في العمل كمدير تسويق. لقد كان الأمر منعشًا للغاية، بعد 9 سنوات من العمل في سير عمل “مريح”.

لم أتوقع أن أحصل على درس حول كيفية تحسين أدائي في العمل من الروبوتات البلاستيكية اليابانية الصغيرة، ولكن هذا ما حدث. غالبًا ما يكون لتعلم أشياء جديدة فوائد غير متوقعة ولكنها ممتعة للغاية 🙂

كيف يساعدك تعلم لغة جديدة على أن تصبح أكثر ذكاءً

إن تعلم لغة بايثون يشبه تعلم لغة أخرى. فأنت تكتب جملًا، وإذا كانت الجملة متماسكة، فإنها تؤدي إلى فعل.

هناك قواعد لغوية ومكتبات يمكنك من خلالها إنشاء الكود الخاص بك. والجمل التي تكتبها يتم تفسيرها من قبلك ومن قبل الآلة. الكلمات الأساسية، والمسافة البادئة، وهياكل البيانات – إنها مفردات وقواعد أساسية. أجرؤ على القول إن تعلم بايثون يشبه تعلم أي لغة أخرى. فأنت بحاجة إلى كلمات حتى يفهمها المتلقي ويتفاعل.

الآن، كيف تستفيد من تعلّم هذا النوع من المعلومات؟

أستطيع أن أذكر بعض المزايا التي تعود على المرء من تعلم لغة جديدة. فإذا تمكنت من فهم ونقل المعلومات بلغات مختلفة، فإنك تفتح لنفسك عالماً مليئاً بالفرص وطرق التفكير الجديدة. ولكن بما أننا نتحدث عن لغة برمجة، فلنركز على الجوانب الأكثر “إدراكاً”.

تعزيز الذاكرة: أظهرت الدراسات أن كبار السن (في السبعينيات من العمر) الذين يتعلمون لغة ثانية يتمتعون بذاكرة أفضل. ويرجع ذلك إلى شبكات دماغية جديدة تم إنشاؤها أثناء تعلم لغة جديدة. وتساهم هذه الشبكات الجديدة أيضًا في تحسين صحة الدماغ في المستقبل. وأعني بذلك أنها تساعد في منع الإصابة بمرض الزهايمر.

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

كيف يساعدك تعلم بايثون على أن تصبح أكثر ذكاءً

حسنًا، عزيزي القارئ، هذا صحيح. كيف؟ دعنا نأخذ كل ما ذكر أعلاه وننظر إليه من منظور تعلم بايثون.

صحة الدماغ والتمارين الرياضية

في عام 2014، قامت مجموعة من العلماء بوضع بعض المبرمجين في ماسح التصوير بالرنين المغناطيسي الوظيفي. وقد أسفر مسح أدمغتهم عن النتائج التالية في نشاط الدماغ أثناء تحليل التعليمات البرمجية:

باختصار، يعد تعلم لغة بايثون نشاطًا إدراكيًا مطلوبًا بشدة. وهذا يعني أنه يزيد من مستوى الميالين في الدماغ. والآن، نعلم جميعًا أن هذا مفيد لك! فأنت تفكر بشكل أسرع.

ثانيًا، يمكنك تحسين ذاكرتك وصحة دماغك بشكل عام، الآن وفي المستقبل. ستصبح أكثر ذكاءً الآن وستظل متيقظًا في المستقبل. والذاكرة الأفضل تعني عامل جاذبية أعلى.

10 مشاريع صعبة للمستوى المتوسط ​​لتعزيز مهاراتك في بايثون ومحفظتك

  هل تريد تسريع عملية   التعلم ؟ هل سئمت من عدم ثقتك بنفسك بما يكفي لوصف نفسك بالخبير؟ أو ربما تكون كذلك، ولكن في أعماقنا نعلم أن هذا ليس صح...