පෙළ එතුම සමඟ පයිතන් තුළ නූල් එතීම, කප්පාදු කිරීම සහ හැඩතල ගැන්වීම

ව්යාපාරික

Python හි තන්තුවක් එතීමෙන් (රේඛාව කැඩීම) සහ අත්තනෝමතික අක්ෂර සංඛ්‍යාවකින් කපා හැරීමෙන් (කෙටියෙන්) සංයුති කිරීමට, සම්මත පුස්තකාලයේ textwrap මොඩියුලය භාවිතා කරන්න.

පහත තොරතුරු මෙහි දක්වා ඇත.

  • නූලක් එතීම (රේඛා සංග්‍රහය):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 ~

ඔබට Argument initial_indent සමඟින් පළමු පේළියේ ආරම්භයට එක් කළ යුතු තන්තුවක් ද නියම කළ හැක. ඔබට ඡේදයක ආරම්භය ඇතුල් කිරීමට අවශ්‍ය වූ විට මෙය භාවිතා කළ හැක.

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()

ඔබට තන්තු කපා හැරීමට සහ අත්හැරීමට අවශ්‍ය නම්, textwrap මොඩියුලයේ ඇති 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 වස්තුව

ඔබ ස්ථාවර වින්‍යාසයකින් බොහෝ වාරයක් එතීමට () හෝ පිරවීමට යන්නේ නම්, එය 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 ~

එකම සැකසුම් නැවත භාවිතා කළ හැකිය.