なぜ、textwrap.wrap()
そしてtextwrap.fill()
とても遅いのですか?たとえば、ラップトップで10000文字の文字列を折り返すには、約2秒半かかります。
$ python -m timeit -n 10 -s 's = "A" * 10000; import textwrap' 'textwrap.fill(s)'
10 loops, best of 3: 2.41 sec per loop
これを、関連するStackOverflowの質問への回答から適合させたこのコードと比較してください
#!/usr/bin/env python
# simplewrap.py
def fill(text, width=70):
return '\n'.join(text[i:i+width] for i in
range(0, len(text), width))
これは、テキストを次の桁よりも速くラップしますtextwrap
。
$ python -m timeit -n 10 -s 's = "A" * 10000; import simplewrap' 'simplewrap.fill(s)'
10 loops, best of 3: 37.2 usec per loop