在Python脚本中使用打印语句的性能影响

问题描述

试图在一个非常简单的脚本中完成此操作只是为了好玩,区别非常惊人:

在large.py中:

target =  open('target.txt', 'w')

for item in xrange(4000000):
    target.write(str(item)+'\n')
    print item

计时:

[gp@imdev1 /tmp]$ time python large.py
real    1m51.690s
user    0m10.531s
sys     0m6.129s

gp@imdev1 /tmp]$ ls -lah target.txt 
-rw-rw-r--. 1 gp gp 30M Nov  8 16:06 target.txt

现在运行时用“打印”注释掉:

gp@imdev1 /tmp]$ time python large.py 
real    0m2.584s
user    0m2.536s
sys     0m0.040s

解决方法

我有一个Python脚本,可以处理一个巨大的文本文件(大约4毫米行),并将数据写入两个单独的文件中。

我添加了一条print语句,该语句为调试的每一行输出一个字符串。我想知道从性能角度看情况有多糟?

如果情况非常糟糕,我可以删除调试行。

编辑

事实证明,对于具有400万行的文件中的每一行都具有打印语句,会使时间增加太多。