【发布时间】:2012-08-02 15:51:49
【问题描述】:
为什么textwrap.wrap() 和textwrap.fill() 这么慢?例如,在我的笔记本电脑上包装一个 10000 个字符的字符串需要将近两秒半的时间。
$ python -m timeit -n 10 -s 's = "A" * 10000; import textwrap' 'textwrap.fill(s)'
10 loops, best of 3: 2.41 sec per loop
将其与改编自 an answer to a related Stack Overflow question 的代码进行比较
#!/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
【问题讨论】:
-
TextWrap 包装单词,可能有很多非拉丁脚本支持,而您的简单代码会盲目地将字符串分解为 70 长度的数组。
标签: python