Python:如何将大文本输出格式化为';更漂亮';和用户定义

Python:如何将大文本输出格式化为';更漂亮';和用户定义,python,formatting,Python,Formatting,喂,堆垛机 我有一个非常简单的问题,但我在这里的其他问题或在线教程中找不到:我们如何能够格式化Python程序的输出,使其符合某种美学格式,而不需要任何额外的模块 这里的目的是,我有一块来自报纸文章的纯文本,我之前已经过滤了它,只提取了我想要的单词,但现在我想打印出来,格式是每行只有70个字符,任何单词都不会被打断,如果它通常落在换行符上 在stdout.write(article.ljust(70))中使用.ljust(70)似乎对它没有任何作用 另一件关于不让单词被打断的事情是: Lates

喂,堆垛机

我有一个非常简单的问题,但我在这里的其他问题或在线教程中找不到:我们如何能够格式化Python程序的输出,使其符合某种美学格式,而不需要任何额外的模块

这里的目的是,我有一块来自报纸文章的纯文本,我之前已经过滤了它,只提取了我想要的单词,但现在我想打印出来,格式是每行只有70个字符,任何单词都不会被打断,如果它通常落在换行符上

在stdout.write(article.ljust(70))中使用.ljust(70)似乎对它没有任何作用

另一件关于不让单词被打断的事情是:

Latest news tragic m

urder innocent victi

ms family quiet neig

hbourhood

Looking more like this:

Latest news tragic

murder innocent

victims family 

quiet neighbourhood
提前谢谢大家

检查(标准模块)

使用textwrap模块:


我相信这一点可以改进。没有任何图书馆:

def wrap_text(text, wrap_column=80):
    sentence = ''
    for word in text.split(' '):
        if len(sentence + word) <= 70:
            sentence += ' ' + word
        else:
            print sentence
            sentence = word
    print sentence
def wrap_text(text,wrap_column=80):
句子=“”
对于文本中的单词。拆分(“”):

如果len(句子+单词)我认为这是这个的重复:另外,对于报纸和排版,请看这个:没关系,textwrap似乎很适合。@MooEEEP不,我只是想学习一些新东西。我已经为dummies挑选了一个Python副本,我正在业余时间学习。只是想填补我所读内容中的一些空白而已。谢谢你的回答!这是一种享受,但我想知道,如果没有textwrap模块,是否也可以做类似的事情?我想这可能需要更多的努力,不是吗?为什么不使用textwrap?如果你想为这个特定的案例编写自己的代码,我认为也可以。这一点也不难。它将只使用标准的python函数。@user1359892:请查看Lib/textwrap.py。它是用Python编写的。你可以研究它是如何工作的。谢谢pepr和Abhranil我必须研究这两个,看看我是否能弄清楚模块是如何工作的=)谢谢,Satyajit!我得试一试。看起来就像我想象的那样。你认为使用正则表达式来改进拆分的位置和方式可以吗?当然可以。如果您只需要单词而不需要标点符号(此答案)[会有所帮助。请使用
re.findall(r'\w+',text)
def wrap_text(text, wrap_column=80):
    sentence = ''
    for word in text.split(' '):
        if len(sentence + word) <= 70:
            sentence += ' ' + word
        else:
            print sentence
            sentence = word
    print sentence
import re

def wrap_text(text, wrap_column=80):
    sentence = ''
    for word in re.findall(r'\w+', text):
        if len(sentence + word) <= 70:
            sentence += ' ' + word
        else:
            print sentence
            sentence = word
    print sentence