टेक्स्टव्रैप के साथ पायथन में स्ट्रिंग्स को लपेटना, छोटा करना और स्वरूपण करना

व्यापार

पायथन में एक स्ट्रिंग को लपेटने (लाइन ब्रेकिंग) और इसे मनमाने ढंग से वर्णों की संख्या में छोटा (संक्षिप्त) करके प्रारूपित करने के लिए, मानक पुस्तकालय के टेक्स्टव्रप मॉड्यूल का उपयोग करें।

निम्नलिखित जानकारी यहाँ प्रदान की गई है।

  • एक स्ट्रिंग लपेटना (लाइन फ़ीड):wrap(),fill()
  • स्ट्रिंग्स को छोटा करें (छोड़े गए):shorten()
  • टेक्स्टवापर ऑब्जेक्ट

यदि आप आउटपुट के बजाय कोड में एकाधिक पंक्तियों पर लंबी स्ट्रिंग्स लिखना चाहते हैं, तो निम्न आलेख देखें।

एक स्ट्रिंग लपेटना (लाइन फ़ीड):wrap(),fill()

टेक्स्टव्रैप मॉड्यूल के फंक्शन रैप () के साथ, आप वर्णों की मनमानी संख्या में फ़िट होने के लिए शब्द विराम से विभाजित सूची प्राप्त कर सकते हैं।

दूसरे तर्क चौड़ाई के लिए वर्णों की संख्या निर्दिष्ट करें। डिफ़ॉल्ट चौड़ाई = 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

फ़ंक्शन भरण () सूची के बजाय एक नई लाइन स्ट्रिंग देता है। यह ऊपर दिए गए उदाहरण में रैप () के बाद निम्नलिखित कोड को निष्पादित करने जैसा ही है।
\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...

टेक्स्टवापर ऑब्जेक्ट

यदि आप एक निश्चित कॉन्फ़िगरेशन के साथ कई बार रैप () या फिल () करने जा रहे हैं, तो टेक्स्टवापर ऑब्जेक्ट बनाना कुशल है।

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 ~

उसी सेटिंग्स का पुन: उपयोग किया जा सकता है।