1 Ali Ibrahim12 نشر 4 مايو أرسل تقرير نشر 4 مايو (معدل) يوجد في مكتبة os يوجد مكتبة تدعى walk تأخذ مسار المجلد المراد بناء شجرة الملفات له وترجع 3 متغيرات يعبر الأول عن مسار المجلد الرئيسي والثاني عن قائمة المجدات الفرعية في هذا المجلد، وقائمة أسماء الملفات في هذا المجلد. حيث تعمل هذه الدالة بشكل تكراري حتى تمشي على جميع الملفات والمجلدات. تشبه في بنائ الشجرة الشكل التالي حيث تسبر مستوى مستوى تنتقل للمستوى الاعمق من خلال المجلدات وتكون الملفات والمجلدات الفارغة عبارة عن اوراق الشجرة مثال : حيث نريد بناء شجرة الملفات لمجلد يدعى root موجود في المسار التالي "C:\\Users\\Ali\\Desktop\\root" حيث يوجد داخله ثلاث مجلدات وداخله في المسار التالي يوجد هذه الملفات حيث نطبق الكود التالي لبناء الشجرة كما تريد حيث walk ترجع 3 متغيرات files وdirectories ونقوم بالمرور على كل الملفات والدالة walk من النوع generator اي تعيد نتيجة عند كل استدعاء لذلك يجب المرور عليها بحلقة for وهي تثبر مستوى ونتقل للمستوى الثاني حيث يعبر المستوى عن محتويات المجلد حيث تقوم بفتح المجلدات بالترتيب import os path = "C:\\Users\\Ali\\Desktop\\root" for root, directories, files in os.walk(path): for file in files: file_path = os.path.join(root, file) # Perform operations on the file_path print(file_path) for directory in directories: directory_path = os.path.join(root, directory) # Perform operations on the directory_path print(directory_path) لتظهر النتيجة بالشكل التالي تم التعديل في 4 مايو بواسطة Ali Ibrahim12 1 اقتباس
1 Ali Ibrahim12 نشر 4 مايو أرسل تقرير نشر 4 مايو بتاريخ 3 دقائق مضت قال محمد العامر3: كيف يمكن استثناء مجلد معين؟؟ في حال كان لدينا مجلدان مثل مجلد مثل 'venv', 'get' نقوم باستخدام الدالة remove التي تاخذ اسم المجلد بحيث نقوم بالمرور على اسماء المجلدات ونقوم باستثنائها في حال كانت تطابق اسم الموجود في قائمة اسماء المجلدات التي نريد حذفها وهي exclude_folders في الكود التالي : import os path = 'C:\\Users\\Ali\\Desktop\\root' exclude_folders = ['venv', 'get'] for root, directories, files in os.walk(path): for folder in exclude_folders: if folder in directories: directories.remove(folder) for file in files: file_path = os.path.join(root, file) # Perform operations on file_path print(file_path) for directory in directories: directory_path = os.path.join(root, directory) # Perform operations on directory_path print(directory_path) 1 اقتباس
0 محمد العامر3 نشر 4 مايو الكاتب أرسل تقرير نشر 4 مايو بتاريخ 7 دقائق مضت قال Ali Ibrahim12: يوجد في مكتبة os يوجد مكتبة تدعى walk تأخذ مسار المجلد المراد بناء شجرة الملفات له وترجع 3 متغيرات يعبر الأول عن مسار المجلد الرئيسي والثاني عن قائمة المجدات الفرعية في هذا المجلد، وقائمة أسماء الملفات في هذا المجلد. حيث تعمل هذه الدالة بشكل تكراري حتى تمشي على جميع الملفات والمجلدات. تشبه في بنائ الشجرة الشكل التالي حيث تسبر مستوى مستوى تنتقل للمستوى الاعمق من خلال المجلدات وتكون الملفات والمجلدات الفارغة عبارة عن اوراق الشجرة مثال : حيث نريد بناء شجرة الملفات لمجلد يدعى root موجود في المسار التالي "C:\\Users\\Ali\\Desktop\\root" حيث يوجد داخله ثلاث مجلدات وداخله في المسار التالي يوجد هذه الملفات حيث نطبق الكود التالي لبناء الشجرة كما تريد حيث walk ترجع 3 متغيرات files وdirectories ونقوم بالمرور على كل الملفات والدالة walk من النوع generator اي تعيد نتيجة عند كل استدعاء لذلك يجب المرور عليها بحلقة for وهي تثبر مستوى ونتقل للمستوى الثاني حيث يعبر المستوى عن محتويات المجلد حيث تقوم بفتح المجلدات بالترتيب import os path = "C:\\Users\\Ali\\Desktop\\root" for root, directories, files in os.walk(path): for file in files: file_path = os.path.join(root, file) # Perform operations on the file_path print(file_path) for directory in directories: directory_path = os.path.join(root, directory) # Perform operations on the directory_path print(directory_path) لتظهر النتيجة بالشكل التالي كيف يمكن استثناء مجلد معين؟؟ اقتباس
0 محمد العامر3 نشر 4 مايو الكاتب أرسل تقرير نشر 4 مايو بتاريخ 3 دقائق مضت قال Ali Ibrahim12: في حال كان لدينا مجلدان مثل مجلد مثل 'venv', 'get' نقوم باستخدام الدالة remove التي تاخذ اسم المجلد بحيث نقوم بالمرور على اسماء المجلدات ونقوم باستثنائها في حال كانت تطابق اسم الموجود في قائمة اسماء المجلدات التي نريد حذفها وهي exclude_folders في الكود التالي : import os path = 'C:\\Users\\Ali\\Desktop\\root' exclude_folders = ['venv', 'get'] for root, directories, files in os.walk(path): for folder in exclude_folders: if folder in directories: directories.remove(folder) for file in files: file_path = os.path.join(root, file) # Perform operations on file_path print(file_path) for directory in directories: directory_path = os.path.join(root, directory) # Perform operations on directory_path print(directory_path) شكرا لحضرتك على الشرح اقتباس
السؤال
محمد العامر3
اريد بناء شجرة ملفات ومجلدات من مسار معين
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.