কম্পিউটার

পাইথনে (গ্লোব) ইউনিক্স স্টাইলের পথনাম প্যাটার্নের বিস্তার


অনেক সময় একটি প্রোগ্রামকে ফাইল সিস্টেমের ফাইলগুলির একটি তালিকার মাধ্যমে পুনরাবৃত্তি করতে হয়, প্রায়ই নামগুলি একটি প্যাটার্নের সাথে মিলে যায়। গ্লোব মডিউলটি নির্দিষ্ট ডিরেক্টরিতে, একটি নির্দিষ্ট এক্সটেনশন থাকা, বা ফাইল নামের একটি অংশ হিসাবে একটি নির্দিষ্ট স্ট্রিং সহ ফাইলগুলি তৈরি করতে কার্যকর৷

গ্লোব মডিউল ফাংশন দ্বারা ব্যবহৃত প্যাটার্ন ম্যাচিং মেকানিজম ইউনিক্স পাথ সম্প্রসারণ নিয়ম অনুসরণ করে। যদিও এই মডিউল টিল্ড (~) এবং শেল ভেরিয়েবলগুলিকে প্রসারিত করে না৷

গ্লোব মডিউলে প্রধানত তিনটি ফাংশন আছে

গ্লোব()

এই ফাংশনটি ফাইলগুলির একটি তালিকা প্রদান করে যা pathname প্যারামিটারে প্রদত্ত প্যাটার্নের সাথে মেলে। পথনাম পরম বা আপেক্ষিক হতে পারে। এটি slo * এবং?.

এর মত ওয়াইল্ড কার্ড অন্তর্ভুক্ত করতে পারে

এই ফাংশনের রিকার্সিভ প্যারামিটারটি ডিফল্টভাবে False। যদি সত্য হয়, প্রদত্ত প্যাটার্নের সাথে মিলে যাওয়া ফাইলগুলি খুঁজে পেতে বর্তমান ডিরেক্টরির সাবডিরেক্টরিগুলি পুনরাবৃত্তভাবে অনুসন্ধান করা হয়৷

নিম্নলিখিত কোডটি '.py' এক্সটেনশন সহ বর্তমান ডিরেক্টরির সমস্ত ফাইল প্রিন্ট করে।

>>> import glob
>>> for file in glob.glob("*.py"):
print (file)
ফাইলের জন্য glob>>> আমদানি করুন

নিম্নলিখিত কোডে, recursive=True প্যারামিটার সাবডিরেক্টরি থেকে ‘.py’ ​​এক্সটেনশন সহ ফাইলগুলিকেও প্রিন্ট করার কারণ হয়৷

>>> for file in glob.glob("*.py", recursive=True):
print (file)

প্যাটার্ন পথের নাম ওয়াইল্ড কার্ড অক্ষর অন্তর্ভুক্ত করতে পারে? নিম্নলিখিত বিবৃতি ফাইলগুলির তালিকা প্রিন্ট করে যার নামের প্রথম দুটি অক্ষর সহ তিনটি অক্ষর হল 'pp'৷

>>> for file in glob.glob("pp?.py"):
print (file)

নিম্নলিখিত কোড ফাইলগুলি মুদ্রণ করে যার নাম একটি সংখ্যা দিয়ে শেষ হয়৷

>>> for file in glob.glob('*[0-9].py')
print (file)

নিম্নলিখিত সিনট্যাক্সের কারণে প্রদত্ত পাথের সাথে মিলে যাওয়া ফাইলগুলি পুনরাবৃত্তিমূলকভাবে মুদ্রিত হয়৷

>>> glob.glob('**/*.py', recursive=True)

বর্তমান ডিরেক্টরিতে পুনরাবৃত্তভাবে ডিরেক্টরির নাম প্রিন্ট করতে,

>>> glob.glob('tcl/**/', recursive=True)

iglob()

এই ফাংশন ফাইলের তালিকার পরিবর্তে একটি জেনারেটর বস্তু প্রদান করে। নেক্সট() ফাংশন ব্যবহার করে, পরবর্তী ফাইলের নাম নিচের মত প্রিন্ট করা যেতে পারে।

>>> it=glob.iglob('*.py')
>>> type(it)
<class 'generator'>
>>> while True:
try:
file=next(it)
print (file)
except StopIteration:
break

পালানো()

এই ফাংশন প্রদত্ত অক্ষর অব্যাহতি. যখন নির্দিষ্ট অক্ষর সহ ফাইলগুলিকে নামের অংশ হতে হবে তখন এটি কার্যকর। অক্ষর স্ট্রিং-এ যেকোনও অক্ষর থাকা ফাইলগুলির জন্য নিম্নলিখিত উদাহরণগুলি অনুসন্ধান করে৷

>>> chars='[]()#'
>>> for char in chars:
esc='*'+glob.escape(char)+'.py'
for file in (glob.glob(esc)):
print (file)
xyz[.py
pp[].py
pp(.py
pp#.py

  1. Python tkinter বোতামে স্টাইল যোগ করুন

  2. পাইথনে ফাইল অবজেক্ট?

  3. পাইথনে জাঙ্ক ফাইল সংগঠক?

  4. পাইথনে Phyllotaxis প্যাটার্ন?