在python中将原始位发送到终端

时间:2010-07-10 14:41:25

标签: python linux

据我了解,像/ dev / urandom这样的文件只提供一个恒定的比特流。终端模拟器然后尝试将它们解释为字符串,这导致一堆无法识别的字符。

我如何在python中执行相同的操作,将一串1和0作为“原始位”发送到终端?

修改 我可能需要澄清一下: 例如,我想要“打印”的字符串是1011100.在ascii系统上,输出应为“\”。如果我cat / dev / urandom,它提供一个恒定的比特流。打印得像这样:“ c g/ t] + __ - ;”。这就是我想要的。

4 个答案:

答案 0 :(得分:3)

Stephano:关键是上面“@you”的不完整答案 - chr函数:

import random, sys

for i in xrange(500):
   sys.stdout.write(chr(random.randrange(256)))

答案 1 :(得分:1)

使用chr功能。我接受0到255之间的输入并返回一个包含与该值对应的字符的字符串。

答案 2 :(得分:0)

import sys, random
while True:
    sys.stdout.write(chr(random.getrandbits(8)))
    sys.stdout.flush()

答案 3 :(得分:0)

another question on StackOverflow开始,您可以获得_bin功能。

def _bin(x, width):
    return ''.join(str((x>>i)&1) for i in xrange(width-1,-1,-1))

然后简单地调用_bin(ord(x), 8) x是一个字符(长度为1的字符串)