小编Zwe*_*ein的帖子

CSV 标准 - 多个表

我正在开发一个 python 项目,对 csv 文件进行一些分析。我知道 csv 文件没有明确定义的标准,但据我理解定义(https://www.rfc-editor.org/rfc/rfc4180#page-2),我认为 csv 文件不应该包含多个表。这种想法是正确的,还是我误解了定义?

您多久会在 csv 中看到多个表?

python csv

8
推荐指数
1
解决办法
5139
查看次数

Python - 使用选择器的非阻塞套接字

简而言之,我的问题:我不知道选择器如何知道哪个套接字应该首先读取或写入。

它是一个可以处理多连接的服务器,其流程应该是:

  1. 服务器创建监听套接字
  2. 客户端创建2个套接字并将它们连接到服务器
  3. 客户端2套接字发送消息
  4. 服务器 2 套接字回显这些消息,客户端和服务器关闭连接

这就是发生的情况,但是如果创建的服务器套接字首先写入,则连接将立即关闭或抛出异常(?),因为它甚至不调用 send 并且客户端套接字不会接收任何内容。那么选择器如何知道哪些套接字应该首先准备好写入/读取呢?为了理解这一点我错过了哪些信息?

服务器:

import socket
import selectors
import types

host = "127.0.0.1"
port = 63210

def accept_wrapper(sock):
    conn, addr = sock.accept()
    print('accepted connection from', addr)
    conn.setblocking(False)
    data = types.SimpleNamespace(addr=addr, inb=b'', outb=b'')
    events = selectors.EVENT_READ | selectors.EVENT_WRITE
    sel.register(conn, events, data=data)

def service_connection(key, mask):
    sock = key.fileobj
    data = key.data
    if mask & selectors.EVENT_READ:
        recv_data = sock.recv(1024)
        if recv_data:
            data.outb += recv_data
        else:
            print('closing connection to', data.addr)
            sel.unregister(sock)
            sock.close()
    if mask & selectors.EVENT_WRITE: …
Run Code Online (Sandbox Code Playgroud)

python sockets select

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

csv ×1

select ×1

sockets ×1