我有一个Python脚本,它将整数列表作为输入,我需要一次使用四个整数.不幸的是,我无法控制输入,或者我将它作为四元素元组列表传入.目前,我正在以这种方式迭代它:
for i in xrange(0, len(ints), 4):
# dummy op for example code
foo += ints[i] * ints[i + 1] + ints[i + 2] * ints[i + 3]
Run Code Online (Sandbox Code Playgroud)
它看起来很像"C-think",这让我怀疑有更多的pythonic方式来处理这种情况.迭代后会丢弃该列表,因此无需保留.也许这样的事情会更好吗?
while ints:
foo += ints[0] * ints[1] + ints[2] * ints[3]
ints[0:4] = []
Run Code Online (Sandbox Code Playgroud)
但是,仍然没有"感觉"正确.: - /
我用Python编写了一个服务器,用于以"Header:Message"的形式向客户端发送数据
我希望能够单独发送每条消息,以便客户端需要执行最少的工作才能读取"标题"和"消息"
不幸的是,我无法弄清楚如何正确刷新python套接字,所以当我有多个发送快速连续执行时,消息在套接字缓冲区中被集中在一起并作为一个大块发送.
例:
服务器发送...
socket.send ("header1:message1")
socket.send ("header2:message2")
socket.send ("header3:message3")
Run Code Online (Sandbox Code Playgroud)
客户端收到..."header1:message1header2:message2header3:message3"
我想收到三条消息
header1:message1
header2:message2
header3:message3
Run Code Online (Sandbox Code Playgroud)
我需要一种方法在每次发送后进行刷新
该计划的流程是:
如果有人能够解释如何使用以下代码打开终端中运行某些可执行文件并提供示例源代码(源代码),我将不胜感激:
import select
import sys
import paramiko
import Xlib.support.connect as xlib_connect
import os
import socket
import subprocess
# run xming
XmingProc = subprocess.Popen("C:/Program Files (x86)/Xming/Xming.exe :0 -clipboard -multiwindow")
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(SSHServerIP, SSHServerPort, username=user, password=pwd)
transport = ssh_client.get_transport()
channelOppositeEdges = {}
local_x11_display = xlib_connect.get_display(os.environ['DISPLAY'])
inputSockets = []
def x11_handler(channel, (src_addr, src_port)):
local_x11_socket = xlib_connect.get_socket(*local_x11_display[:3])
inputSockets.append(local_x11_socket)
inputSockets.append(channel)
channelOppositeEdges[local_x11_socket.fileno()] = channel
channelOppositeEdges[channel.fileno()] = local_x11_socket
transport._queue_incoming_channel(channel)
session = transport.open_session()
inputSockets.append(session)
session.request_x11(handler = x11_handler)
session.exec_command('xterm')
transport.accept() …
Run Code Online (Sandbox Code Playgroud)