如何在python中避免使用stdout空格?

时间:2012-03-17 17:28:46

标签: python stdout

在搞乱Python时,我决定制作一个随机符号生成器,它会向CL输出连续的字符流。

这很简单,看起来像这样:

from random import choice
import sys

char_ranges = [[33,48],[58,65],[91,97],[123,127]]

chars = []
for r in char_ranges:
    for i in range(r[0],r[1]):
        chars.append(chr(i))

while True:
    print choice(chars),
    sys.stdout.flush()

唯一的问题是打印字符后使用的,会导致在调用stdout.flush()后添加空格。

我通常会解决这个问题,通过连接字符串并打印它,但在这种情况下,我想要一个连续的输出流,因此连接将无济于事。

那么如何在没有空格的Python中获得连续输出流?

2 个答案:

答案 0 :(得分:6)

使用sys.stdout.write代替print

print是一个更高级别的构造,用于快速和脏输出。如果您需要更多控制权,请使用其他内容。

答案 1 :(得分:1)

试试这个:

sys.stdout.write(choice(chars))