প্রাথমিক কোড
import glob
import fnmatch
import pathlib
import os
pattern = '*.py'
path = '.'
সমাধান 1 - "গ্লোব" ব্যবহার করুন
# lookup in current dir
glob.glob(pattern)
In [2]: glob.glob(pattern)
Out[2]: ['wsgi.py', 'manage.py', 'tasks.py']
সমাধান 2 - "ওএস" + "এফএনমেচ" ব্যবহার করুন
বৈকল্পিক 2.1 - বর্তমান দিরের দিকে তাকান
# lookup in current dir
fnmatch.filter(os.listdir(path), pattern)
In [3]: fnmatch.filter(os.listdir(path), pattern)
Out[3]: ['wsgi.py', 'manage.py', 'tasks.py']
বৈকল্পিক 2.2 - পুনরাবৃত্তির চেহারা দেখুন
# lookup recursive
for dirpath, dirnames, filenames in os.walk(path):
if not filenames:
continue
pythonic_files = fnmatch.filter(filenames, pattern)
if pythonic_files:
for file in pythonic_files:
print('{}/{}'.format(dirpath, file))
ফলাফল
./wsgi.py
./manage.py
./tasks.py
./temp/temp.py
./apps/diaries/urls.py
./apps/diaries/signals.py
./apps/diaries/actions.py
./apps/diaries/querysets.py
./apps/library/tests/test_forms.py
./apps/library/migrations/0001_initial.py
./apps/polls/views.py
./apps/polls/formsets.py
./apps/polls/reports.py
./apps/polls/admin.py
সমাধান 3 - "প্যাথলিব" ব্যবহার করুন
# lookup in current dir
path_ = pathlib.Path('.')
tuple(path_.glob(pattern))
# lookup recursive
tuple(path_.rglob(pattern))
মন্তব্য:
- পাইথন ৩.৪-তে পরীক্ষা করা হয়েছে
- "পাথলিব" মডিউলটি কেবল পাইথন ৩.৪-এ যুক্ত করা হয়েছিল
- পাইথন ৩.৫ গ্লোব . glob https://docs.python.org/3.5/library/glob.html#glob.glob এর সাথে পুনরাবৃত্ত অনুসন্ধানের জন্য একটি বৈশিষ্ট্য যুক্ত করেছে
। যেহেতু আমার মেশিনটি পাইথন ৩.৪ এর সাথে ইনস্টল করা আছে, তাই আমি এটি পরীক্ষা করিনি।