$ python -mtimeit -s"import re" "re.sub('\n','',open('AV1611Bible.txt').read())"
10 loops, best of 3: 53.9 msec per loop
$ python -mtimeit "''.join(l[:-1] for l in open('AV1611Bible.txt'))"
10 loops, best of 3: 51.3 msec per loop
$ python -mtimeit "open('AV1611Bible.txt').read().replace('\n', '')"
10 loops, best of 3: 35.1 msec per loop
我不会使用regex来简单地替换换行符-我会使用
string.replace()
。以下是完整的脚本:两个主要的替代方案:将所有内容都作为一个字符串读入并删除换行符:
或者,逐行阅读,删除每行结尾的换行符,然后再次将其连接起来:
前一种方法可能更快,但是,和往常一样,我强烈建议您在您感兴趣的情况下测量速度(例如,使用
python -mtimeit
),而不是假设您知道性能如何。REs可能比较慢,但是,再一次:不要猜测,测量!下面是我笔记本电脑上特定文本文件的一些编号:
该文件是KJ圣经的一个版本,从here下载并解压缩(我认为在一个容易获取的文件上运行这样的测量非常重要,这样其他人就可以轻松地复制它们!)。
当然,对于一个4.3MB34000行的文件来说,几毫秒的时间或多或少对你来说并不重要;但是由于最快的方法也是最简单的方法(远不是不寻常的情况,特别是在Python中;-),我认为这是一个很好的建议。
相关问题 更多 >
编程相关推荐