সমস্যা
ধরুন আপনাকে একটি স্ট্রিংর শুরু বা শেষে নির্দিষ্ট টেক্সট প্যাটার্ন চেক করতে হবে। সাধারণ প্যাটার্ন হতে পারে ফাইল এক্সটেনশন, কিন্তু এটি যেকোনো কিছু হতে পারে। আমি এখানে কিছু মেথড দেখাব।
startswith() মেথড
স্ট্রিংর শুরু চেক করার সহজ উপায় হল startswith() মেথড ব্যবহার করা।
উদাহরণ
text = "Is USA colder than Australia?"
print(f"output \n {text.startswith('Is')}")
আউটপুট
True
উদাহরণ
filename = "Hello_world.txt"
print(f"output \n {filename.startswith('Hello')}")
আউটপুট
True
উদাহরণ
site_url = 'https://www.something.com'
print(f"output \n {site_url.startswith('http:')}")
আউটপুট
False
উদাহরণ
print(f"output \n {site_url.startswith('https:')}")
আউটপুট
True
endswith() মেথড
স্ট্রিংর শেষ চেক করার সহজ উপায় হল endswith() মেথড ব্যবহার করা।
উদাহরণ
text = "Is USA colder than Australia?"
print(f"output \n {text.endswith('?')}")
আউটপুট
True
উদাহরণ
filename = "Hello_world.txt"
print(f"output \n {filename.endswith('.txt')}")
আউটপুট
True
একাধিক চয়েস চেক করা
উপরোক্ত মেথডগুলোর সাথে একাধিক চয়েস চেক করতে হলে টাপল (tuple) প্রদান করতে হয়। সাধারণ ব্যবহার হল ফাইল এক্সটেনশন ভ্যালিডেশন, যেমন ".txt" এবং ".csv" ফাইল চেক করা।
import os
filenames = os.listdir('.')
# চেক করুন কোনো ফাইল আছে কিনা
print(f"output \n {any(name.endswith(('.csv','.txt')) for name in filenames)}")
আউটপুট
True
ফাইল নামগুলো পান
[name for name in filenames if name.endswith(('.csv', '.txt'))]
আউটপুট
['file1.csv', 'HRDataset.csv', 'Input.csv', 'input.txt', 'input_copy.txt', 'movies_data.csv', 'my_html_data_to_csv.csv', 'temporary_file1_for_zip.csv', 'temporary_file2_for_zip.csv', 'test.csv', 'test1.txt', 'test2.txt', 'tmdb_5000_movies.csv']
মনে রাখবেন এই মেথডগুলো টাপল এক্সেপ্ট করে। আপনার যদি লিস্ট থাকে, তবে টাপলে কনভার্ট করতে হবে।
import os
# লিস্ট চয়েস প্যাটার্ন
patters = ['.csv', '.txt']
filenames = os.listdir('.')
# ত্রুটি হবে কারণ লিস্ট পাস করা হয়েছে
any(name.endswith(patters) for name in filenames)
# TypeError: endswith first arg must be str or a tuple of str, not list
টাপলে কনভার্ট করুন
any(name.endswith(tuple(patters)) for name in filenames)
আউটপুট
True
ফাইল নাম পেতে
[name for name in filenames if name.endswith(tuple(patters))]
অন্যান্য অপারেশনlarla সংযোজন
startswith() এবং endswith() মেথডগুলো অন্যান্য অপারেশনlarla একসাথে ব্যবহার করা উপযুক্ত, যেমন সাধারণ ডেটা রিডাকশন। উদাহরণ:
if any(name.endswith(tuple(patters)) for name in filenames):
# এখানে আপনার লজিক লিখুন