পাইথনে একটি স্ট্রিংকে র্যাপিং (লাইন ব্রেকিং) এবং অক্ষরগুলির একটি নির্বিচারে ছেঁটে (সংক্ষিপ্ত করে) ফর্ম্যাট করতে, স্ট্যান্ডার্ড লাইব্রেরির টেক্সট্র্যাপ মডিউলটি ব্যবহার করুন।
নিম্নলিখিত তথ্য এখানে প্রদান করা হয়.
- একটি স্ট্রিং মোড়ানো (লাইন ফিড):
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 ~
আপনি আর্গুমেন্ট 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()
আপনি যদি স্ট্রিংগুলিকে ছেঁটে ফেলতে এবং বাদ দিতে চান তবে টেক্সট র্যাপ মডিউলে ফাংশন শর্টেন() ব্যবহার করুন।
অক্ষরগুলির একটি নির্বিচারে সংখ্যক ফিট করার জন্য শব্দ ইউনিটে সংক্ষেপিত। বাদ দেওয়া নির্দেশক স্ট্রিং সহ অক্ষরের সংখ্যা নির্বিচারে। বাদ দেওয়ার ইঙ্গিতকারী স্ট্রিংটি আর্গুমেন্ট প্লেসহোল্ডারের সাথে সেট করা যেতে পারে, যা নিম্নলিখিতটিতে ডিফল্ট।[...]'
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 ~
একই সেটিংস পুনরায় ব্যবহার করা যেতে পারে।