Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में एक स्ट्रिंग की शुरुआत या अंत में टेक्स्ट का मिलान कैसे करें?

समस्या..

मान लें कि आपको किसी विशिष्ट टेक्स्ट पैटर्न के लिए स्ट्रिंग के प्रारंभ या अंत की जांच करने की आवश्यकता है। सामान्य पैटर्न फ़ाइल नाम एक्सटेंशन हो सकते हैं लेकिन कुछ भी हो सकते हैं। मैं आपको कुछ तरीके दिखाऊंगा कि आप यह कैसे कर सकते हैं।

Startwith()विधि

एक स्ट्रिंग की शुरुआत की जांच करने का एक आसान तरीका startwith() विधि का उपयोग करना है।

उदाहरण

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

समाप्त होता है() विधि।

एक स्ट्रिंग के अंत की जांच करने का एक आसान तरीका है endwith() विधि का उपयोग करना।

आउटपुट

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

अब अगर हम उपरोक्त विधियों के साथ कई विकल्पों की जांच करना चाहते हैं तो हमें टुपल्स प्रदान करने की आवश्यकता है। सामान्य उपयोगों में से एक फ़ाइल एक्सटेंशन की जांच है, मान लें कि हमें निर्देशिका में ".txt" और ".csv" फ़ाइलों के लिए सत्यापन करने की आवश्यकता है।

import os
filenames = os.listdir('.')
# Let us first check if there are files
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

# list with choices
patters = ['.csv','.txt']

# get the file names
filenames = os.listdir('.')

# Let us first check if there are files
any(name.endswith(patters) for name in filenames)

आउटपुट

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
8
9 # Let us first check if there are files
---> 10 any(name.endswith(patters) for name in filenames)

in (.0)
8
9 # Let us first check if there are files
---> 10 any(name.endswith(patters) for name in filenames)

TypeError: endswith first arg must be str or a tuple of str, not list

उपरोक्त कमांड ने एक त्रुटि दी है, इसलिए हमें सूची को टपल में बदलने की आवश्यकता है।

उदाहरण

# Let us first check if there are files
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',
'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']

अंत में, स्टार्टविथ () और एंडविथ () विधियाँ अन्य ऑपरेशनों के साथ संयुक्त होने पर अच्छी लगती हैं, जैसे कि सामान्य डेटा कटौती। उदाहरण के लिए:

उदाहरण

if any(name.endswith(tuple(patters)) for name in filenames):
<perform the logic here>

  1. Java RegEx का उपयोग करके इनपुट के अंत का मिलान कैसे करें?

    आप मेटा कैरेक्टर \\z का उपयोग करके इनपुट के अंत का मिलान कर सकते हैं। उदाहरण आयात करें .out.println (एक स्ट्रिंग दर्ज करें); स्कैनर एससी =नया स्कैनर (System.in); स्ट्रिंग इनपुट =sc.nextLine (); स्ट्रिंग रेगेक्स =[0-9]\\z; // नियमित अभिव्यक्ति का संकलन पैटर्न पैटर्न =Pattern.compile(regex); // मैचर ऑ

  1. मैं पायथन में कीबोर्ड से कॉपी किए गए टेक्स्ट को कैसे पेस्ट करूं?

    पायथन कई अंतर्निहित पुस्तकालय और मॉड्यूल प्रदान करता है जो विभिन्न पायथन अनुप्रयोगों को विकसित करने में अतिरिक्त सुविधाओं को लागू करने का एक तरीका प्रदान करता है। पाइपरक्लिप किसी भी पायथन एप्लिकेशन में कॉपी और पेस्ट ऑपरेशन को लागू करने के लिए क्रॉस-प्लेटफ़ॉर्म पायथन मॉड्यूल में से एक है। इसे पायथन ए

  1. पायथन में एक स्ट्रिंग का आकार कैसे प्राप्त करें?

    पायथन में लेन() नामक एक विधि है जो हमें किसी भी समग्र वस्तु की लंबाई देती है। एक स्ट्रिंग की लंबाई प्राप्त करने के लिए, बस स्ट्रिंग को लेन () कॉल पर पास करें। उदाहरण print(len('Hello World!')) आउटपुट 12 यदि आप स्ट्रिंग का आकार बाइट्स में चाहते हैं, तो आप sys मॉड्यूल से getsizeof() विधि का