在搞乱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中获得连续输出流?
答案 0 :(得分:6)
使用sys.stdout.write
代替print
。
print
是一个更高级别的构造,用于快速和脏输出。如果您需要更多控制权,请使用其他内容。
答案 1 :(得分:1)
试试这个:
sys.stdout.write(choice(chars))