python - partitioning text at nearest pipe at every 2000 characters -
i'm writing program posts messages 2,000 character limit. string i'm using around 10,000 characters. however, method i'm using divide can divide string in middle of word - how have divide @ nearest space (before) 2k characters?
in code need call api @ evey 2000 characters. input text size >5000 sometimes.
how ever, simple substring partitioning devides text in middle of word. hindi text, want split @ nearest "।" character. have written logic same. correct?
# -*- coding: utf-8 -*- text = " ( नई दिल्ली केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की है. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ. सीबीआई ने 3 एफआईआर दर्ज की है, जिनमें 111 विमानों की खरीद, विमानों को पट्टे पर देना और एयर इंडिया द्वारा मुनाफे वाले हवाई मार्गों को छोड़ने की जांच शामिल है. गौरतलब है कि मार्च 2007 में तत्कालीन यूपीए सरकार ने सरकारी विमानन कंपनी एयर इंडिया और इंडियन एयरलाइन्स के विलय को फाइनल मंजूरी दी थी. नई एयरलाइन में दोनों के करीब 120 विमान और 30 हजार से ज्यादा कर्मचारी एक हो गए. हालांकि एयरलाइन के सरकारी स्वरूप में बदलाव नहीं हुआ. अनुमानों के मुताबिक एयर इंडिया पर 52,000 करोड़ रुपये की देनदारी है जिसमें से अकेले ब्याज ही 4,000 करोड़ रुपये सालाना है. बीते पांच सालों में सरकार ने सार्वजनिक क्षेत्र की इस एयरलाइन को 25,000 करोड़ रुपये दिए हैं और 2032 तक इतनी ही रकम और दिए जाने की बात है. इन सभी प्रयासों के बावजूद भी एयर इंडिया को सालाना 3,000 करोड़ रुपये का घाटा हो रहा है. अधिकारियों का मानना है कि कंपनी की मौजूदा हालत के लिए एयर इंडिया-इंडियन एयरलाइंस का विलय भी जिम्मेदार है. )(केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.) ( नई दिल्ली केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की है. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ. सीबीआई ने 3 एफआईआर दर्ज की है, जिनमें 111 विमानों की खरीद, विमानों को पट्टे पर देना और एयर इंडिया द्वारा मुनाफे वाले हवाई मार्गों को छोड़ने की जांच शामिल है. गौरतलब है कि मार्च 2007 में तत्कालीन यूपीए सरकार ने सरकारी विमानन कंपनी एयर इंडिया और इंडियन एयरलाइन्स के विलय को फाइनल मंजूरी दी थी. नई एयरलाइन में दोनों के करीब 120 विमान और 30 हजार से ज्यादा कर्मचारी एक हो गए. हालांकि एयरलाइन के सरकारी स्वरूप में बदलाव नहीं हुआ. अनुमानों के मुताबिक एयर इंडिया पर 52,000 करोड़ रुपये की देनदारी है जिसमें से अकेले ब्याज ही 4,000 करोड़ रुपये सालाना है. बीते पांच सालों में सरकार ने सार्वजनिक क्षेत्र की इस एयरलाइन को 25,000 करोड़ रुपये दिए हैं और 2032 तक इतनी ही रकम और दिए जाने की बात है. इन सभी प्रयासों के बावजूद भी एयर इंडिया को सालाना 3,000 करोड़ रुपये का घाटा हो रहा है. अधिकारियों का मानना है कि कंपनी की मौजूदा हालत के लिए एयर इंडिया-इंडियन एयरलाइंस का विलय भी जिम्मेदार है. )(केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.)" import re text = re.sub(r"(?<!\d)\.|\.(?!\d)", '। ',text) text = text.decode("utf-8") def split_message(message, character_limit=2000): messages = [] while len(message) > character_limit: split_index = message[:character_limit].rfind("।".decode("utf-8")) if split_index == -1: # no । found, split @ character limit split_index = character_limit else: # else space found, split after space split_index += 1 messages.append(message[:split_index]) message = message[split_index:] messages.append(message) return messages res = split_message(text) val in res: print val.encode("utf-8")
python has textwrap module may here. https://docs.python.org/2/library/textwrap.html
import textwrap text = " ( नई दिल्ली केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की है. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ. सीबीआई ने 3 एफआईआर दर्ज की है, जिनमें 111 विमानों की खरीद, विमानों को पट्टे पर देना और एयर इंडिया द्वारा मुनाफे वाले हवाई मार्गों को छोड़ने की जांच शामिल है. गौरतलब है कि मार्च 2007 में तत्कालीन यूपीए सरकार ने सरकारी विमानन कंपनी एयर इंडिया और इंडियन एयरलाइन्स के विलय को फाइनल मंजूरी दी थी. नई एयरलाइन में दोनों के करीब 120 विमान और 30 हजार से ज्यादा कर्मचारी एक हो गए. हालांकि एयरलाइन के सरकारी स्वरूप में बदलाव नहीं हुआ. अनुमानों के मुताबिक एयर इंडिया पर 52,000 करोड़ रुपये की देनदारी है जिसमें से अकेले ब्याज ही 4,000 करोड़ रुपये सालाना है. बीते पांच सालों में सरकार ने सार्वजनिक क्षेत्र की इस एयरलाइन को 25,000 करोड़ रुपये दिए हैं और 2032 तक इतनी ही रकम और दिए जाने की बात है. इन सभी प्रयासों के बावजूद भी एयर इंडिया को सालाना 3,000 करोड़ रुपये का घाटा हो रहा है. अधिकारियों का मानना है कि कंपनी की मौजूदा हालत के लिए एयर इंडिया-इंडियन एयरलाइंस का विलय भी जिम्मेदार है. )(केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.) ( नई दिल्ली केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की है. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ. सीबीआई ने 3 एफआईआर दर्ज की है, जिनमें 111 विमानों की खरीद, विमानों को पट्टे पर देना और एयर इंडिया द्वारा मुनाफे वाले हवाई मार्गों को छोड़ने की जांच शामिल है. गौरतलब है कि मार्च 2007 में तत्कालीन यूपीए सरकार ने सरकारी विमानन कंपनी एयर इंडिया और इंडियन एयरलाइन्स के विलय को फाइनल मंजूरी दी थी. नई एयरलाइन में दोनों के करीब 120 विमान और 30 हजार से ज्यादा कर्मचारी एक हो गए. हालांकि एयरलाइन के सरकारी स्वरूप में बदलाव नहीं हुआ. अनुमानों के मुताबिक एयर इंडिया पर 52,000 करोड़ रुपये की देनदारी है जिसमें से अकेले ब्याज ही 4,000 करोड़ रुपये सालाना है. बीते पांच सालों में सरकार ने सार्वजनिक क्षेत्र की इस एयरलाइन को 25,000 करोड़ रुपये दिए हैं और 2032 तक इतनी ही रकम और दिए जाने की बात है. इन सभी प्रयासों के बावजूद भी एयर इंडिया को सालाना 3,000 करोड़ रुपये का घाटा हो रहा है. अधिकारियों का मानना है कि कंपनी की मौजूदा हालत के लिए एयर इंडिया-इंडियन एयरलाइंस का विलय भी जिम्मेदार है. )(केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.केंद्रीय जांच ब्यूरो (सीबीआई) ने एयर इंडिया और इंडियन एयरलाइंस के विलय से जुड़े मामलों की पड़ताल के लिए एफआईआर दर्ज की. सीबीआई का आरोप है कि दोनों एयरलाइंस के विलय की वजह से करोड़ों रुपये का नुकसान हुआ.)" text = text.decode("utf-8") result = textwrap.wrap(text, width=2000) line in result: print(line.encode('utf-8'))
Comments
Post a Comment