بايثون هي لغة برمجة تستخدم على نطاق واسع لتطوير تطبيقات مختلفة ، بما في ذلك العمل مع الملفات والمجلدات. غالبا ما يكون من الضروري الحصول على جميع الملفات في مجلد معين من أجل إجراء عمليات معينة عليها. في هذه المقالة ، سنلقي نظرة على بعض أفضل الطرق التي ستساعدك في الحصول على جميع الملفات في مجلد باستخدام بايثون.
1. وحدة نظام التشغيل
توفر وحدة نظام التشغيل وظائف للعمل مع نظام التشغيل. واحدة من هذه الوظائف هي نظام التشغيل.ليستدير () ، الذي يقوم بإرجاع قائمة بأسماء الملفات في المجلد المحدد. يمكنك استخدام هذه الوظيفة لاسترداد جميع الملفات في مجلد.
2. وحدة غلوب
توفر وحدة غلوب غلوب.غلوب () وظيفة ، والتي ترجع قائمة الملفات مطابقة القالب المحدد. يمكنك استخدام هذه الوظيفة للحصول على جميع الملفات في مجلد عن طريق تحديد القالب المناسب.
3. وحدة باثليب
توفر وحدة باثليب واجهة أكثر تقدما للعمل مع الملفات والمجلدات. يمكنك استخدام فئة المسار من هذه الوحدة للحصول على جميع الملفات في المجلد.
في هذه المقالة ، قمنا بمراجعة العديد من أفضل الطرق للحصول على جميع الملفات في مجلد باستخدام بايثون. يمكنك اختيار الطريقة المناسبة حسب احتياجاتك وتفضيلاتك. حظا سعيدا في البرمجة!
- باستخدام وحدة نظام التشغيل
- البحث عن ملف العودية باستخدام وحدة غلوب
- الحصول على قائمة من الملفات باستخدام وحدة باثليب
- باستخدام نظام التشغيل.المشي وحدة للحصول على قائمة من الملفات
- باستخدام وظيفة ليستدير من وحدة نظام التشغيل
- الحصول على قائمة الملفات باستخدام نظام التشغيل.وحدة سكاندير
- استخدام وحدة فنماتش لتصفية الملفات
- الحصول على قائمة من الملفات باستخدام وحدة سكاندير (بيثون الإصدار 3.5 وما فوق)
- سؤال وجواب
باستخدام وحدة نظام التشغيل
توفر وحدة نظام التشغيل في بايثون مجموعة واسعة من الوظائف للعمل مع نظام التشغيل. قد يكون من المفيد الحصول على قائمة بالملفات في مجلد.
للحصول على جميع الملفات في مجلد باستخدام وحدة نظام التشغيل ، يمكنك استخدام نظام التشغيل.ليستدير () وظيفة. يقوم بإرجاع قائمة بأسماء الملفات والمجلدات في الدليل المحدد.
مثال على استخدام نظام التشغيل.ليستدير () وظيفة للحصول على قائمة من الملفات في مجلد:
استيراد نظام التشغيل
الدليل = 'مسار / إلى / مجلد'
الملفات = نظام التشغيل.ليستدير (دليل)
للملف في الملفات:
طباعة (ملف)
سيعرض هذا الرمز أسماء جميع الملفات والمجلدات في المجلد المحدد.
بالإضافة إلى نظام التشغيل.ليستدير () وظيفة ، وحدة نظام التشغيل يوفر وظائف أخرى مفيدة للعمل مع نظام الملفات، مثل:
- نظام التشغيل.جيتكود () - إرجاع دليل العمل الحالي;
- نظام التشغيل.شدير (المسار) - يغير دليل العمل الحالي إلى الدليل المحدد;
- نظام التشغيل.الطريق.الانضمام(المسار 1 ، المسار 2) - يجمع بين جزأين من المسار في جزء واحد;
- نظام التشغيل.الطريق.إيسفيل — المسار) - يتحقق ما إذا كان المسار هو ملف;
- نظام التشغيل.الطريق.إسدير (المسار) - يتحقق مما إذا كان المسار مجلدا;
- وغيرها الكثير.
باستخدام هذه الوظائف ، يمكنك تنفيذ المهام المختلفة المتعلقة بالعمل مع الملفات والمجلدات في بايثون.
البحث عن ملف العودية باستخدام وحدة غلوب
وحدة غلوب في بيثون يوفر وسيلة سهلة لإجراء بحث متكرر للملفات في دليل معين. يسمح لك باستخدام القوالب للبحث عن الملفات وفقا لمعايير معينة.
لاستخدام وحدة غلوب ، تحتاج إلى استيراده:
استيراد غلوبوظيفة الكرة الأرضية.غلوب (نمط) يقبل سلسلة قالب وإرجاع قائمة بجميع المسارات المقابلة للقالب المحدد في الدليل الحالي. على سبيل المثال:
ملفات = غلوب.غلوب ('*.النص')في هذه الحالة ، جميع الملفات ذات الامتداد".النص " في الدليل الحالي سيتم العثور عليها.
ومع ذلك ، لإجراء بحث متكرر عن الملفات في جميع الدلائل الفرعية ، تحتاج إلى استخدام علامة النجمة المزدوجة "* * " في القالب:
ملفات = غلوب.غلوب ('**/*.النص ' ، العودية = صحيح)سيتم إجراء هذا البحث في الدليل الحالي وجميع الدلائل الفرعية.
تدعم وحدة غلوب أيضا خيارات إضافية أخرى لتحسين البحث عن الملفات. على سبيل المثال ، يمكنك استخدام "**/*" للبحث عن جميع الملفات في جميع الدلائل الفرعية دون قيود الامتداد. يمكنك أيضا تحديد مسار جذر مختلف باستخدام مسار مطلق أو مسار نسبي.
باستخدام وحدة غلوب ، يمكنك بسهولة إجراء بحث متكرر للملفات في دليل معين باستخدام القوالب والمعلمات. يعد هذا مناسبا جدا عندما تحتاج إلى معالجة عدد كبير من الملفات داخل مجلد ، وكذلك في الدلائل الفرعية الخاصة به.
الحصول على قائمة من الملفات باستخدام وحدة باثليب
توفر وحدة باثليب أساليب مريحة للعمل مع مسارات نظام الملفات في بيثون. مع ذلك ، يمكنك بسهولة الحصول على قائمة بجميع الملفات في مجلد معين.
لبدء العمل مع وحدة باثليب ، تحتاج إلى استيراده:
من مسار استيراد باثليب
ثم يمكنك إنشاء كائن من فئة المسار عن طريق تحديد المسار إلى المجلد حيث تريد العثور على الملفات:
مسار = مسار ('/مسار / إلى / مجلد')
باستخدام طريقة غلوب من فئة المسار ، يمكنك الحصول على قائمة بجميع الملفات في مجلد. يقبل الأسلوب غلوب قالب مسار وإرجاع كافة المسارات المقابلة لهذا القالب:
قائمة الملفات = قائمة(مسار المجلد.غلوب ('*'))
ستحتوي قائمة قائمة الملفات الناتجة على كائنات من نوع المسار تمثل الملفات الموجودة في المجلد المحدد.
يمكنك أيضا استخدام قوالب غلوب لتصفية الملفات عن طريق التمديد. على سبيل المثال ، للحصول على قائمة بجميع الملفات ذات الامتداد ".النص "في مجلد ، يجب تحديد القالب"*.النص " عند استدعاء طريقة غلوب:
قائمة = قائمة (مجلد_مسار.غلوب ('*.النص'))
وهكذا ، وذلك باستخدام وحدة باثليب ، يمكنك بسهولة الحصول على قائمة بجميع الملفات في مجلد معين وإجراء تصفية ملف أكثر تعقيدا بالاسم أو التمديد.
باستخدام نظام التشغيل.المشي وحدة للحصول على قائمة من الملفات
واحدة من أكثر الطرق ملاءمة وشائعة للحصول على قائمة بالملفات في مجلد هي استخدام نظام التشغيل.وحدة المشي من مكتبة بايثون القياسية. تتيح لك هذه الوحدة الزحف بشكل متكرر إلى جميع الدلائل والملفات في المجلد المحدد.
مزايا استخدام نظام التشغيل.المشي وحدة للحصول على قائمة من الملفات:
- الراحة-نظام التشغيل.توفر وحدة المشي واجهة بسيطة وبديهية لاجتياز الملفات في مجلد;
- العودية-نظام التشغيل.وحدة المشي تعبر تلقائيا جميع المجلدات الفرعية والدلائل الفرعية للمجلد المحدد;
- المرونة — يمكنك تعيين مرشحات مختلفة لتحديد الملفات المطلوبة ، على سبيل المثال ، عن طريق التمديد أو الاسم.
مثال على استخدام وحدة نظام التشغيل.walk для получения списка файлов:
«`python
import os
folder_path = «/путь/к/папке»
file_list = []
for folder_name, subfolders, filenames in os.walk(folder_path):
for filename in filenames:
file_path = os.path.join(folder_name, filename)
file_list.append(file_path)
«`
В данном примере переменная folder_path содержит путь к папке, в которой нужно получить список файлов. بعد تنفيذ التعليمات البرمجية ، سيقوم متغير قائمة الملفات بتخزين قائمة بمسارات الملفات في المجلد المحدد ومجلداته الفرعية.
داخل الحلقة لاسم المجلد والمجلدات الفرعية وأسماء الملفات في نظام التشغيل.المشي (مسار المجلد) ، نكرر جميع المسارات إلى المجلدات والملفات داخل المجلد المحدد. يحتوي متغير اسم المجلد على المسار إلى المجلد الحالي ، والمجلدات الفرعية هي قائمة بالمجلدات الفرعية في المجلد الحالي ، وأسماء الملفات هي قائمة بالملفات في المجلد الحالي.
داخل الحلقة المتداخلة ، نذهب من خلال قائمة أسماء الملفات والحصول على المسار إلى كل ملف. نظام التشغيل.الطريق.يتم استخدام وظيفة الانضمام لدمج مسار المجلد واسم الملف.
نتيجة لذلك ، تتم إضافة كل مسار ملف إلى قائمة الملفات.
الآن يخزن متغير قائمة الملفات جميع الملفات في المجلد المحدد ومجلداته الفرعية ، مرتبة حسب ترتيب الزحف. يمكن استخدام القائمة لمزيد من المعالجة أو تحليل الملفات.
باستخدام وظيفة ليستدير من وحدة نظام التشغيل
طريقة واحدة للحصول على جميع الملفات في مجلد باستخدام لغة البرمجة بيثون هو استخدام وظيفة ليستدير() من وحدة نظام التشغيل. تقوم وظيفة ليستدير() بإرجاع قائمة بمحتويات المجلد المحدد.
مثال على استخدام وظيفة ليستدير() :
استيراد نظام التشغيل
مسار المجلد ="./ المسار إلى المجلد"
الملفات = نظام التشغيل.ليستدير (مجلد_مسار)
للملف في الملفات:
طباعة (ملف)
في هذا المثال ، يتم استيراد وحدة نظام التشغيل أولا. بعد ذلك ، يتم كتابة المسار إلى المجلد الذي تريد الحصول على محتوياته إلى متغير مسار المجلد. بعد ذلك ، باستخدام وظيفة ليستدير () ، يتم الحصول على قائمة الملفات والمجلدات في المجلد المحدد وكتابتها إلى متغير الملفات. في ل حلقة ، يتم فرز الملفات المستلمة من خلال ويتم عرض أسمائهم على الشاشة.
وهكذا ، باستخدام وظيفة ليستدير () من وحدة نظام التشغيل ، يمكنك الحصول على قائمة بجميع الملفات في المجلد المحدد.
الحصول على قائمة الملفات باستخدام نظام التشغيل.وحدة سكاندير
وحدة نظام التشغيل.سكاندير في بيثون يوفر وسيلة بسيطة وفعالة للحصول على قائمة من الملفات في مجلد معين. إنه جزء من المكتبة القياسية ولا يتطلب تثبيتا إضافيا.
لاستخدام نظام التشغيل.وحدة سكاندير ، تحتاج إلى استيراده على النحو التالي:
استيراد نظام التشغيل
بعد ذلك ، للحصول على قائمة بالملفات في مجلد ، تحتاج إلى استخدام نظام التشغيل.وظيفة سكاندير وتذهب من خلال كل عنصر باستخدام حلقة. كل عنصر هو كائن من نظام التشغيل.نوع ديرينتري ، الذي يحتوي على معلومات حول ملف أو مجلد ، مثل الاسم والحجم ووقت التعديل الأخير ومعلومات التعريف الأخرى.
هنا هو رمز المثال الذي يوضح كيفية الحصول على قائمة من الملفات في مجلد وإخراج أسمائهم:
استيراد نظام التشغيل
مواطنه الحصول على فيلز_في_مجلد (مجلد):
مع نظام التشغيل.سكاندير (مجلد) كإدخالات:
للدخول في الإدخالات:
هو_ملف():
طباعة(entry.name )
في هذا المثال ، تأخذ وظيفة الحصول على الملفات اسم المجلد كوسيطة وتستخدم نظام التشغيل.وظيفة سكاندير للحصول على قائمة من العناصر في المجلد. ثم يمر عبر كل عنصر ويتحقق مما إذا كان ملفا باستخدام طريقة إيس_فيل. إذا كان العنصر ملفا ، فسيتم إخراج اسمه باستخدام خاصية الاسم.
هذه الطريقة للحصول على قائمة الملفات باستخدام نظام التشغيل.وحدة سكاندير سريعة وفعالة ، خاصة عند العمل مع المجلدات الكبيرة. كما يوفر معلومات أكثر تفصيلا حول كل ملف إذا كنت في حاجة إليها.
استخدام وحدة فنماتش لتصفية الملفات
يمكن أن تكون عملية العمل مع الملفات في بايثون معقدة للغاية ، خاصة عندما تحتاج إلى معالجة عدد كبير من الملفات وتحديد الملفات الضرورية فقط. طريقة واحدة للتعامل مع هذه المهمة هي استخدام وحدة فنماتش.
توفر وحدة فنماتش وظائف تسمح لك بتصفية الملفات وتحديدها بناء على قوالب محددة. يعتمد على آلية لمطابقة القوالب مع أسماء الملفات والمسارات إليها.
لاستخدام وحدة فنماتش ، تحتاج إلى استيراده باستخدام الأمر:
استيراد فنماتشبعد ذلك ، يمكنك استخدام الوظائف التالية:
- فنماتش.تصفية (أسماء ، نمط): إرجاع قائمة بأسماء الملفات من قائمة الأسماء التي تطابق نمط النمط. فمثلا, فنماتش.تصفية (['ملف1.النص ' ، ' ملف2.كسف ' ، ' file3.py ']،'*.النص') سيعود قائمة ['ملف1.النص'].
- فنماتش.ترجمة (نمط): إرجاع التعبير العادي المترجمة استنادا إلى نمط نمط. يمكن أن يكون هذا مفيدا إذا كنت بحاجة إلى إعادة استخدام القالب.
- فنماتش.فنماتش (الاسم ، النمط): يعود صحيحا إذا كان اسم اسم الملف يطابق نمط النمط. فمثلا, فنماتش.فنماتش (ملف.النص'،'*.النص') يعود صحيح.
- فنماتش.فنماتشكيس (الاسم ، نمط): على غرار الوظيفة السابقة ، ولكنها حساسة لحالة الأحرف.
مثال على استخدام وحدة فنماتش لتصفية الملفات:
استيراد نظام التشغيلاستيراد فنماتش
# الحصول على جميع الملفات من المجلد الحالي
الملفات = نظام التشغيل.ليستدير ('.')
# تصفية الملفات باستخدام القالب"*.النص"
ملفات فلترة = فنماتش.تصفية (الملفات،'*.النص')
طباعة (تصفية الملفات)
ستكون نتيجة البرنامج قائمة بالملفات التي لها الامتداد".النص " وتقع في المجلد الحالي.
باستخدام وحدة فنماتش يجعل من السهل لتصفية وتحديد الملفات في بيثون. يوفر وظائف مريحة للعمل مع القوالب ويسمح لك بتحقيق المرونة اللازمة عند معالجة الملفات.
الحصول على قائمة من الملفات باستخدام وحدة سكاندير (بيثون الإصدار 3.5 وما فوق)
كانت وحدة سكاندير جزءا من مكتبة بايثون القياسية منذ الإصدار 3.5. يوفر أدوات أكثر كفاءة وملاءمة للعمل مع الملفات والمجلدات.
للحصول على قائمة بالملفات في مجلد معين باستخدام وحدة سكاندير ، اتبع الخطوات التالية:
- استيراد وحدة سكاندير:
- وتمرير المسار إلى هذا المجلد إليه.
- استخدم حلقة للزحف إلى جميع العناصر الموجودة في المجلد المحدد. الكائن الذي تم إرجاعه هو مكرر يحتوي على حالة جميع العناصر.
- . إذا كان العنصر عبارة عن ملف ، فأضفه إلى القائمة.
Вся эта последовательность шагов может быть реализована следующим образом:
"'بايثون
استيراد سكاندير
مواطنه الحصول على فيلز_قائمة (مسار):
قائمة الملفات = []
مع سكاندير.فتح (المسار) كدليل:
للدخول في الدليل:
هو_ملف():
إلحاق(entry.name)
قائمة ملفات الإرجاع
«`
Пример использования:
"'بايثون
مسار ='/////''
قائمة الملفات = الحصول على قائمة الملفات (المسار)
طباعة (قائمة الملفات)
«`
نتيجة لتنفيذ هذا الرمز ، سيتم عرض قائمة بجميع الملفات في المجلد المحدد.
مزايا استخدام وحدة سكاندير:
- الكفاءة: يستخدم سكاندير مكالمات النظام ذات المستوى الأدنى ، لذلك يعمل بشكل أسرع من الطرق الأخرى للحصول على قائمة بالملفات.
- دعم الارتباط الرمزي: يتبع سكاندير الروابط الرمزية تلقائيا ، على عكس الطرق الأخرى التي يجب القيام بها يدويا.
- الراحة: سكاندير بإرجاع كائن مكرر التي يمكن استخدامها في حلقة دون الحاجة إلى تحميل قائمة كاملة من الملفات في الذاكرة في وقت واحد.
وحدة سكاندير هو أداة قوية للحصول على قائمة من الملفات في مجلد باستخدام بيثون. يسمح لك بالعمل بكفاءة وسهولة مع الملفات والمجلدات ، وهو مناسب للمشاريع الكبيرة التي تتطلب معالجة عدد كبير من الملفات.