相关疑难解决方法(0)

Python中"完全没有EOF"的完美对应点是什么?

要读取一些文本文件,在C或Pascal中,我总是使用以下代码段来读取数据,直到EOF:

while not eof do begin
  readline(a);
  do_something;
end;
Run Code Online (Sandbox Code Playgroud)

因此,我想知道如何在Python中简单快速地完成这项工作?

python iteration file eof

104
推荐指数
5
解决办法
27万
查看次数

如何循环直到Python中的EOF?

我需要循环,直到我到达类似文件的对象的末尾,但我没有找到"明显的方法去做",这让我怀疑我忽略了一些东西,很明显.:-)

我有一个流(在这种情况下,它是一个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的工作.有没有想过更好的方法来实现这个目标?

python eof stringio

10
推荐指数
3
解决办法
6万
查看次数

Paramiko 上的 exec_command 和使用 invoke_shell() 发送有什么区别?

那么在Paramiko上SSHClient.exec_command()发送和发送有什么区别SSHClient.invoke_shell

我可以使用exec_commandMikroTik 路由器设备发送和执行命令,但无法使用send( invoke_shell())执行它。

另一方面,我可以向Cisco 设备发送和执行命令send( invoke_shell()),但不能使用exec_command.

我的意思是配置命令,如路由(ip route xxx xxx)或make vlan或添加ip地址等。

python ssh cisco paramiko

7
推荐指数
1
解决办法
9005
查看次数

Paramiko, exec_command 连续获取输出流

我干了一个 Python 脚本。我为给定的 IP 创建了一个 Python 脚本,它将通过 Paramiko 连接到服务器以执行另一个 Python 脚本。

这是一些代码:

self._client = paramiko.SSHClient()
self._client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
self._client.connect(self._ip, username=self._server['username'], password=self._server['password'])
channel = self._client.get_transport().open_session()
channel.exec_command('python3 /tmp/scrap.py /tmp/' + self._ip + '.txt 0 1')
Run Code Online (Sandbox Code Playgroud)

脚本“scrap.py”每 X 秒在远程机器的控制台中返回一行,但是我无法在上面脚本中的这些行中恢复(在 exec_command (. ..) 的退出时)。

这是可能的,如果是,你知道怎么做吗?

先感谢您。

python paramiko python-3.x

6
推荐指数
1
解决办法
7423
查看次数

标签 统计

python ×4

eof ×2

paramiko ×2

cisco ×1

file ×1

iteration ×1

python-3.x ×1

ssh ×1

stringio ×1