我需要循环,直到我到达类似文件的对象的末尾,但我没有找到"明显的方法去做",这让我怀疑我忽略了一些东西,很明显.:-)
我有一个流(在这种情况下,它是一个StringIO对象,但我也对一般情况感到好奇)以"<length> <data>"格式存储未知数量的记录,例如:
data = StringIO("\x07\x00\x00\x00foobar\x00\x04\x00\x00\x00baz\x00")
Run Code Online (Sandbox Code Playgroud)
现在,我能想象的唯一清晰的方法就是使用(我认为是)一个初始化的循环,这看起来有点像非Pythonic:
len_name = data.read(4)
while len_name != "":
len_name = struct.unpack("<I", len_name)[0]
names.append(data.read(len_name))
len_name = data.read(4)
Run Code Online (Sandbox Code Playgroud)
在一个类似C语言,我只是坚持的read(4)中while的测试条款,但当然不会对Python的工作.有没有想过更好的方法来实现这个目标?
我使用Paramiko向远程Linux服务器运行一些ssh命令.这些命令将在控制台中连续输出,我想在本地控制台窗口中打印这些所有信息.
stdin, stdout, stderr = ssh.client.exec_command("ls")
for line in stdout.read()
print line,
ssh.client.close()
Run Code Online (Sandbox Code Playgroud)
因此,如果我编写这样的代码,所有输出信息将被发送回给我,直到命令完成执行,而我想在live中打印输出.
非常感谢.