टेक्स्टरॅपसह पायथनमध्ये रॅपिंग, ट्रंकटिंग आणि स्ट्रिंगचे स्वरूपन

व्यवसाय

पायथनमधील स्ट्रिंगला रॅपिंग (लाइन ब्रेकिंग) आणि अक्षरांच्या अनियंत्रित संख्येवर ट्रंकेट (संक्षेप) करून स्वरूपित करण्यासाठी, मानक लायब्ररीचे टेक्स्ट रॅप मॉड्यूल वापरा.

खालील माहिती येथे दिली आहे.

  • स्ट्रिंग गुंडाळणे (लाइन फीड):wrap(),fill()
  • ट्रंकेट स्ट्रिंग (वगळलेले):shorten()
  • TextWrapper ऑब्जेक्ट

तुम्हाला आउटपुट ऐवजी कोडमधील अनेक ओळींवर लांब स्ट्रिंग्स लिहायच्या असतील, तर पुढील लेख पहा.

स्ट्रिंग गुंडाळणे (लाइन फीड):wrap(),fill()

मजकूर रॅप मॉड्यूलच्या फंक्शन wrap() सह, आपण अक्षरांच्या अनियंत्रित संख्येमध्ये बसण्यासाठी शब्द ब्रेकद्वारे विभाजित केलेली सूची मिळवू शकता.

दुसऱ्या वितर्क रुंदीसाठी वर्णांची संख्या निर्दिष्ट करा. डीफॉल्ट रुंदी=70 आहे.

import textwrap

s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"

s_wrap_list = textwrap.wrap(s, 40)
print(s_wrap_list)
# ['Python can be easy to pick up whether', "you're a first time programmer or you're", 'experienced with other languages']

प्राप्त यादी वापरून, आपण खालील गोष्टी करून नवीन लाइन कोडद्वारे खंडित केलेली स्ट्रिंग मिळवू शकता
\n'.join(list)

print('\n'.join(s_wrap_list))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages

फंक्शन फिल() सूचीऐवजी नवीन लाइन स्ट्रिंग देते. हे वरील उदाहरणाप्रमाणे wrap() नंतर खालील कोड कार्यान्वित करण्यासारखेच आहे.
\n'.join(list)

हे अधिक सोयीचे असते जेव्हा तुम्हाला सूचीची आवश्यकता नसते परंतु टर्मिनलवर स्थिर-रुंदीची स्ट्रिंग आउटपुट करायची असते, इ.

print(textwrap.fill(s, 40))
# Python can be easy to pick up whether
# you're a first time programmer or you're
# experienced with other languages

max_line वितर्क निर्दिष्ट केले असल्यास, त्यानंतरच्या ओळींची संख्या वगळली जाईल.

print(textwrap.wrap(s, 40, max_lines=2))
# ['Python can be easy to pick up whether', "you're a first time programmer or [...]"]

print(textwrap.fill(s, 40, max_lines=2))
# Python can be easy to pick up whether
# you're a first time programmer or [...]

वगळल्यास, खालील स्ट्रिंग डीफॉल्टनुसार शेवटी आउटपुट होईल.
[...]'

हे वितर्क प्लेसहोल्डरसह कोणत्याही स्ट्रिंगद्वारे बदलले जाऊ शकते.

print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~'))
# Python can be easy to pick up whether
# you're a first time programmer or ~

तुम्ही वितर्क आरंभिक_इंडेंटसह पहिल्या ओळीच्या सुरुवातीला जोडण्यासाठी स्ट्रिंग देखील निर्दिष्ट करू शकता. जेव्हा तुम्हाला परिच्छेदाची सुरूवात इंडेंट करायची असेल तेव्हा हे वापरले जाऊ शकते.

print(textwrap.fill(s, 40, max_lines=2, placeholder=' ~', initial_indent='  '))
#   Python can be easy to pick up whether
# you're a first time programmer or ~

पूर्ण-आकार आणि अर्ध-आकाराच्या वर्णांसह सावधगिरी बाळगा.

टेक्स्ट रॅपमध्ये, वर्णांची संख्या वर्णांच्या रुंदीने नव्हे तर वर्णांच्या संख्येद्वारे नियंत्रित केली जाते आणि सिंगल-बाइट आणि डबल-बाइट दोन्ही वर्ण एक वर्ण म्हणून मानले जातात.

s = '文字文字文字文字文字文字12345,67890, 文字文字文字abcde'

print(textwrap.fill(s, 12))
# 文字文字文字文字文字文字
# 12345,67890,
# 文字文字文字abcde

जर तुम्हाला मिश्रित कांजी वर्णांसह मजकूर निश्चित रुंदीसह गुंडाळायचा असेल, तर कृपया खालील गोष्टींचा संदर्भ घ्या.

ट्रंकेट स्ट्रिंग (वगळलेले):shorten()

जर तुम्हाला स्ट्रिंग्स ट्रंकेट आणि वगळायचे असतील, तर टेक्स्ट रॅप मॉड्यूलमध्ये शॉर्टन() फंक्शन वापरा.

वर्णांची अनियंत्रित संख्या बसविण्यासाठी शब्द एककांमध्ये संक्षिप्त. वगळण्याचे संकेत देणाऱ्या स्ट्रिंगसह वर्णांची संख्या अनियंत्रित आहे. वगळण्याचे संकेत देणारी स्ट्रिंग वितर्क प्लेसहोल्डरसह सेट केली जाऊ शकते, जी खालीलप्रमाणे डीफॉल्ट आहे.
[...]'

s = 'Python is powerful'

print(textwrap.shorten(s, 12))
# Python [...]

print(textwrap.shorten(s, 12, placeholder=' ~'))
# Python is ~

तथापि, जपानी स्ट्रिंग्स, उदाहरणार्थ, संक्षिप्त केले जाऊ शकत नाहीत कारण ते शब्दांमध्ये विभागले जाऊ शकत नाहीत.

s = 'Pythonについて。Pythonは汎用のプログラミング言語である。'

print(textwrap.shorten(s, 20))
# [...]

शब्द एककांऐवजी केवळ अक्षरांची संख्या लक्षात घेऊन संक्षिप्तीकरण करायचे असल्यास ते खालीलप्रमाणे सहज साध्य करता येईल.

s_short = s[:12] + '...'
print(s_short)
# Pythonについて。P...

TextWrapper ऑब्जेक्ट

तुम्ही निश्चित कॉन्फिगरेशनसह अनेक वेळा wrap() किंवा fill() करणार असाल, तर TextWrapper ऑब्जेक्ट तयार करणे कार्यक्षम आहे.

wrapper = textwrap.TextWrapper(width=30, max_lines=3, placeholder=' ~', initial_indent='  ')

s = "Python can be easy to pick up whether you're a first time programmer or you're experienced with other languages"

print(wrapper.wrap(s))
# ['  Python can be easy to pick', "up whether you're a first time", "programmer or you're ~"]

print(wrapper.fill(s))
#   Python can be easy to pick
# up whether you're a first time
# programmer or you're ~

समान सेटिंग्ज पुन्हा वापरल्या जाऊ शकतात.

Copied title and URL