टेक्स्ट र्यापको साथ पाइथनमा र्‍यापिङ, ट्रन्केटिङ र स्ट्रिङ फर्म्याट गर्ने

व्यापार

पाइथनमा स्ट्रिङलाई र्‍यापिङ (लाइन ब्रेकिङ) र क्यारेक्टरहरूको स्वेच्छाचारी संख्यामा काटेर (संक्षिप्त) गरेर ढाँचा बनाउन, मानक पुस्तकालयको टेक्स्ट र्याप मोड्युल प्रयोग गर्नुहोस्।

निम्न जानकारी यहाँ प्रदान गरिएको छ।

  • स्ट्रिङ बेर्दै (लाइन फिड):wrap(),fill()
  • स्ट्रिङ काट्नुहोस् (छोडिएको):shorten()
  • TextWrapper वस्तु

यदि तपाइँ आउटपुटको सट्टा कोडमा धेरै रेखाहरूमा लामो स्ट्रिङहरू लेख्न चाहनुहुन्छ भने, निम्न लेख हेर्नुहोस्।

स्ट्रिङ बेर्दै (लाइन फिड):wrap(),fill()

textwrap मोड्युलको प्रकार्य 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

प्रकार्य fill() ले सूचीको सट्टा नयाँ लाइन स्ट्रिङ फर्काउँछ। यो माथिको उदाहरणमा जस्तै 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 ~

पूर्ण-आकार र आधा-आकार वर्णहरूसँग सावधान रहनुहोस्।

textwrap मा, क्यारेक्टरहरूको संख्या क्यारेक्टरहरूको संख्याद्वारा नियन्त्रित हुन्छ, क्यारेक्टर चौडाइद्वारा होइन, र दुवै एकल-बाइट र डबल-बाइट क्यारेक्टरहरूलाई एक क्यारेक्टरको रूपमा मानिन्छ।

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

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

यदि तपाइँ निश्चित चौडाइको साथ मिश्रित कान्जी क्यारेक्टरहरूसँग पाठ लपेट्न चाहनुहुन्छ भने, कृपया निम्नलाई सन्दर्भ गर्नुहोस्।

स्ट्रिङ काट्नुहोस् (छोडिएको):shorten()

यदि तपाइँ स्ट्रिङहरू काट्न र मेटाउन चाहनुहुन्छ भने, textwrap मोड्युलमा प्रकार्य छोटो () प्रयोग गर्नुहोस्।

अक्षरहरूको मनमानी संख्यामा फिट गर्न शब्द एकाइहरूमा संक्षिप्त। क्यारेक्टरहरूको सङ्ख्या, स्ट्रिङले छोडेको संकेत गर्ने, स्वेच्छाचारी छ। बहिष्कार संकेत गर्ने स्ट्रिङलाई तर्क प्लेसहोल्डरसँग सेट गर्न सकिन्छ, जुन निम्नमा पूर्वनिर्धारित हुन्छ।
[...]'

s = 'Python is powerful'

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

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

यद्यपि, जापानी स्ट्रिङहरू, उदाहरणका लागि, राम्रोसँग संक्षिप्त गर्न सकिँदैन ’cause तिनीहरू शब्दहरूमा विभाजित हुन सक्दैनन्।

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