كيف تكتب سكريبت بايثون مفيد من أول محاولة (أتمتة الملفات)
تعلم كيف تبني أول سكريبت بايثون مفيد لتنظيم وإدارة ملفاتك ومجلداتك تلقائياً، واكتشف كيف تدمج التعلم مع الذكاء الاصطناعي لتسريع عملك البرمجي.
عدد الكلمات: 940 · مدة القراءة: 5 دقائق
كيف تكتب سكريبت بايثون مفيد من أول محاولة (أتمتة الملفات)
توقف عن كتابة البرامج التقليدية غير المفيدة — ابنِ محركاً حقيقياً لأتمتة الملفات يوفر عليك ساعات من العمل الإداري
في مقالنا السابق، أتقنّا الأوامر العشرة الأساسية في لغة بايثون وقمنا ببناء حاسبة مالية بسيطة. الآن، حان الوقت للانتقال من المنطق الأساسي إلى المنفعة العملية المباشرة. إن أكبر خطأ يقع فيه المستقلون المبتدؤون هو قضاء أسابيع طويلة في كتابة معادلات رياضية مجردة أو تمارين تقليدية لا طائل منها. لكي تتقن البرمجة حقاً، يجب أن يحل الكود الخاص بك مشكلة فورية ومزعجة تواجهها في عملياتك اليومية.
إحدى أبرز العقبات الإدارية التي تواجه المستقلين الرقميين — سواء كنت مترجماً، مصمماً، أو كاتباً — هي فوضى الملفات. إن إدارة مئات ملفات تسليم العملاء غير المنظمة، والمستندات المصدرية العشوائية، والصور، والفواتير المتناثرة على سطح المكتب تستهلك وقتاً طالما احتجت إليه لإنجاز مشاريعك.
في هذه الورشة العمليّة، سنقوم ببناء سكريبت بايثون حقيقي يفحص أي مجلد فوضوي، ويعزل الملفات بناءً على صيغتها وامتدادها، ثم يعيد هيكلتها تلقائياً داخل مجلدات مخصصة.
١. المحرك الأساسي: فهم مكتبة النظام (os)
للتفاعل مع نظام تشغيل كمبيوترك، وفحص المجلدات، ونقل الملفات، تعتمد بايثون على مكتبة برمجية مدمجة وقوية للغاية تُعرف باسم `os`. لن تحتاج إلى تثبيت أي أدوات خارجية؛ فهي تأتي مدمجة بشكل افتراضي داخل لغة بايثون.
كيف يعمل منطق الأتمتة هنا؟ سيعمل السكريبت عبر تنفيذ أربع خطوات منطقية متسلسلة:
١. تحديد المجلد المستهدف الذي يحتوي على الملفات الفوضوية.
٢. المرور بحلقة تكرارية على كل ملف موجود داخل هذا المجلد.
٣. تحديد نوع الملف بناءً على امتداده وصيغته (مثل: بي دي إف، دوكس، جي بي جي).
٤. إنشاء مجلد وجهة مخصص إذا لم يكن موجوداً بالفعل، ونقل الملف إليه بأمان.
دعنا نلقي نظرة على السكريبت الكامل الجاهز للاستخدام. قم بإنشاء ملف باسم `file_organizer.py` داخل برنامج فيجوال ستوديو كود ونفّذ الكتلة البرمجية التالية:
٢. كود الإنتاج: منظم ملفات المستقل المحترف
import os
import shutil
def organize_directory(target_path):
# Ensure the target directory actually exists before proceeding
if not os.path.exists(target_path):
print("Error: The specified path does not exist.")
return
# Define file categories and their corresponding extensions
file_types = {
"Documents": [".pdf", ".docx", ".txt", ".xlsx", ".pptx"],
"Images": [".jpg", ".jpeg", ".png", ".gif", ".svg"],
"Audio_Video": [".mp3", ".wav", ".mp4", ".mkv"],
"Archives": [".zip", ".rar", ".tar", ".gz"]
}
# Iterate through all items located in the target path
for filename in os.listdir(target_path):
file_full_path = os.path.join(target_path, filename)
# Skip directories to prevent moving nested folders
if os.path.isdir(file_full_path):
continue
# Extract the file extension and convert to lowercase
_, extension = os.path.splitext(filename)
extension = extension.lower()
moved = False
# Match the extension against our defined categories
for category, extensions in file_types.items():
if extension in extensions:
category_folder = os.path.join(target_path, category)
# Create the folder dynamically if it does not exist yet
if not os.path.exists(category_folder):
os.makedirs(category_folder)
# Safely relocate the file into the appropriate directory
shutil.move(file_full_path, os.path.join(category_folder, filename))
print(f"Moved: {filename} -> Category: {category}")
moved = True
break
# If the file extension doesn't match any category, move to 'Others'
if not moved:
others_folder = os.path.join(target_path, "Others")
if not os.path.exists(others_folder):
os.makedirs(others_folder)
shutil.move(file_full_path, os.path.join(others_folder, filename))
print(f"Moved Unknown: {filename} -> Category: Others")
if __name__ == "__main__":
print("--- Freelancer File Organizer Engine ---")
user_directory = input("Enter the absolute path of the directory to clean: ")
organize_directory(user_directory.strip())
print("Operation completed successfully.")
٣. كيف تشغل وتختبر السكريبت الخاص بك؟
لرؤية محرك الأتمتة هذا وهو يعمل دون المخاطرة بملفاتك المهنية المهمة، اتبع خطوات الاختبار الهيكلية التالية:
- أنشئ مجلداً تجريبياً: قم بإنشاء مجلد مؤقت على نظامك واسمه
workspace_test. - ضع ملفات وهمية: أضف بضعة ملفات فارغة بامتدادات وصيغ مختلفة بداخله، مثل
invoice.pdf، وlogo.png، وbackup.zip، وarticle.docx. - شغّل الأتمتة: افتح الطرفية (Terminal) وشغّل السكريبت الخاص بك عبر كتابة الأمر:
python file_organizer.py - أدخل المسار المستهدف: عندما يطلب منك السكريبت المسار، انسخ المسار الكامل والمطلق لمجلد الاختبار
workspace_test، والصقه في الطرفية ثم اضغط زر الإدخال.
في غضون أجزاء من الثانية، ستقوم بايثون بمسح جذر المجلد وبناء مجلدات فرعية نظيفة ومنظمة، فارزةً أصول عملائك وملفاتك إلى مستودعاتها الصحيحة.
شاهد هذا الشرح المرئي لخطوات العمل لترى كيف تتعامل بايثون مع المجلدات المحلية وتحسن عمليات نظام الملفات لديك.
٤. بيئة العمل الحديثة: دمج تعلم بايثون مع الذكاء الاصطناعي
في عام ٢٠٢٦، لم تعد بحاجة إلى المعاناة الطويلة مع تعقيدات كتابة الصيغ البرمجية أو قضاء ساعات طويلة في البحث داخل المنتديات القديمة لتطوير السكريبت الخاص بك. تعتمد هندسة البرمجيات الاحترافية اليوم بشكل كبير على سير عمل هجين: **استخدام نماذج الذكاء الاصطناعي لتوليد الأكواد، ومعالجة الأخطاء، وتوسيع نطاق السكريبتات الهيكلية.**
الآن أصبحت تمتلك الأساس القوي. وبدلاً من كتابة حلقات برمجية متقدمة ومعقدة من الصفر، يمكنك نسخ السكريبت الأساسي الذي بنيناه في الأعلى، ولصقه في أي نموذج ذكاء اصطناعي، ثم استخدام أوامر توجيهية محددة لتعزيز قدراته وميزاته.
أوامر توجيهية (Prompts) عالية الفعالية لتوسيع نطاق السكريبت الخاص بك:
- “قم بتعديل سكريبت بايثون هذا لإضافة التاريخ الحالي (السنة-الشهر-اليوم) إلى مقدمة اسم كل ملف قبل نقله إلى مجلده المخصص.”
- “أضف ميزة تسجيل التقارير (Logging) إلى هذا السكريبت بحيث يكتب ملف نصي تلقائي داخل المجلد يشرح بالتفصيل عدد الملفات التي تمت أتمتتها وتنظيمها.”
- “أعد كتابة هذا الكود باستخدام ميزة معالجة الأخطاء لضمان أنه إذا كان الملف موجوداً بالفعل في مجلد الوجهة، يقوم بإضافة رقم نسخة (مثل _v2) بدلاً من استبدال الملف الأصلي وحذفه.”
باستخدامك للذكاء الاصطناعي كمساعد برمجى مبتدئ يعمل تحت إشرافك، ستتجنب تماماً عقبات كتابة الكود البرمجي المعقد مع احتفاظك الكامل بالتحكم المعماري في السكريبت. أنت تفهم الآن المنطق الهيكلي لكيفية عمل الكود، مما يعني أنه يمكنك بسهولة توجيه الذكاء الاصطناعي لتوسيع أدواتك وتطويرها بما يتوافق تماماً مع متطلبات عملك الحر.
الخطوة التالية:
الآن بعد أن فرضت تحكمك البرمجي الكامل على نظام الملفات المحلي لديك، أصبحت مستعداً لتوسيع نطاق سكريبتات الأتمتة لتصل إلى شبكة الويب العالمية.
انتقل مباشرة إلى المقال الخامس من سلسلتنا التعليمية الشاملة: أتمتة مهامك اليومية كفريلانسر باستخدام بايثون

