டெக்ஸ்ட்ராப் மூலம் பைத்தானில் சரங்களை மடக்குதல், துண்டித்தல் மற்றும் வடிவமைத்தல்

வணிக

பைத்தானில் ஒரு சரத்தை ஒரு தன்னிச்சையான எழுத்துக்களில் போர்த்தி (வரி உடைத்தல்) மற்றும் துண்டித்து (சுருக்கமாக) வடிவமைக்க, நிலையான நூலகத்தின் உரை மடக்கு தொகுதியைப் பயன்படுத்தவும்.

பின்வரும் தகவல்கள் இங்கே கொடுக்கப்பட்டுள்ளன.

  • ஒரு சரத்தை போர்த்துதல் (வரி ஊட்டம்):wrap(),fill()
  • சரங்களை துண்டிக்கவும் (தவிர்க்கப்பட்டது):shorten()
  • TextWrapper பொருள்

வெளியீட்டிற்குப் பதிலாக குறியீட்டில் பல வரிகளில் நீண்ட சரங்களை எழுத விரும்பினால், பின்வரும் கட்டுரையைப் பார்க்கவும்.

ஒரு சரத்தை போர்த்துதல் (வரி ஊட்டம்):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...

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 ~

அதே அமைப்புகளை மீண்டும் பயன்படுத்தலாம்.