समस्या
मान लीजिए आपको किसी स्ट्रिंग की शुरुआत या अंत में विशिष्ट टेक्स्ट पैटर्न की जांच करने की आवश्यकता है। सामान्य पैटर्न फाइल एक्सटेंशन हो सकते हैं लेकिन यह कुछ भी हो सकता है। मैं आपको कुछ तरीके दिखाऊंगा कि आप यह कैसे कर सकते हैं।
startswith() मेथड
स्ट्रिंग की शुरुआत की जांच करने का एक सरल तरीका startswith() मेथड का उपयोग करना है।
उदाहरण 1:
text = "Is USA colder than Australia?"
print(f"output \n {text.startswith('Is')}")
आउटपुट: True
उदाहरण 2:
filename = "Hello_world.txt"
print(f"output \n {filename.startswith('Hello')}")
आउटपुट: True
उदाहरण 3:
site_url = 'https://www.something.com'
print(f"output \n {site_url.startswith('http:')}")
आउटपुट: False
उदाहरण 4:
print(f"output \n {site_url.startswith('https:')}")
आउटपुट: True
endswith() मेथड
स्ट्रिंग के अंत की जांच करने का एक सरल तरीका endswith() मेथड का उपयोग करना है।
उदाहरण 1:
text = "Is USA colder than Australia?"
print(f"output \n {text.endswith('?')}")
आउटपुट: True
उदाहरण 2:
filename = "Hello_world.txt"
print(f"output \n {filename.endswith('.txt')}")
आउटपुट: True
एकाधिक विकल्पों के लिए टपल का उपयोग
अगर हम उपरोक्त मेथड्स के साथ एकाधिक विकल्पों की जांच करना चाहते हैं तो हमें टपल प्रदान करने की आवश्यकता है। एक सामान्य उपयोग फाइल एक्सटेंशन के लिए जांच करना है - मान लीजिए हमें डायरेक्टरी में ".txt" और ".csv" फाइलों को वैलिडेट करना है।
import os
filenames = os.listdir('.')
# जांचें कि क्या .csv या .txt फाइलें हैं
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', ...]
याद रखें ये मेथड्स टपल स्वीकार करते हैं, अगर आपके पास खोजने के लिए विकल्पों की सूची है, तो उन्हें टपल में बदलने की आवश्यकता है।
import os
# विकल्पों की सूची
patters = ['.csv', '.txt']
filenames = os.listdir('.')
# यह एरर देगा क्योंकि list पास किया गया है
# any(name.endswith(patters) for name in filenames)
# सही तरीका - list को tuple में बदलें
any(name.endswith(tuple(patters)) for name in filenames)
आउटपुट: True
[name for name in filenames if name.endswith(tuple(patters))]
आउटपुट: ['file1.csv', 'HRDataset.csv', 'Input.csv', 'input.txt', ...]
अन्य ऑपरेशन्स के साथ संयोजन
startswith() और endswith() मेथड्स अन्य ऑपरेशन्स के साथ संयुक्त होने पर अच्छे लगते हैं, जैसे सामान्य डेटा रिडक्शन। उदाहरण के लिए:
if any(name.endswith(tuple(patters)) for name in filenames):
# यहां लॉजिक परफॉर्म करें