相关疑难解决方法(0)

TypeError:'str'不支持缓冲区接口

plaintext = input("Please enter the text you want to compress")
filename = input("Please enter the desired filename")
with gzip.open(filename + ".gz", "wb") as outfile:
    outfile.write(plaintext) 
Run Code Online (Sandbox Code Playgroud)

上面的python代码给出了以下错误:

Traceback (most recent call last):
  File "C:/Users/Ankur Gupta/Desktop/Python_works/gzip_work1.py", line 33, in <module>
    compress_string()
  File "C:/Users/Ankur Gupta/Desktop/Python_works/gzip_work1.py", line 15, in compress_string
    outfile.write(plaintext)
  File "C:\Python32\lib\gzip.py", line 312, in write
    self.crc = zlib.crc32(data, self.crc) & 0xffffffff
TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)

python string gzip

263
推荐指数
5
解决办法
33万
查看次数

python中监听端口并捕获数据

我正在使用 C 语言的应用程序,它将连续数据发送到指定端口。我可以使用“Putty”(使用 telnet 127.0.0.1 端口 30003)查看传入数据。

现在我想捕获该数据进行处理。请建议如何在 python 中做到这一点?

数据以每秒 5 行的速度逐行流动。我应该逐行读取数据进行处理并将其显示在窗口中。

python

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

在SSL套接字上使用部分recv()的python的select()行为

我创建了一个SSL套接字(服务器端)并将套接字放入select()队列.当套接字"准备好"读取时,select()正确返回.

然后我recv(1024)字节.在某些情况下,这将获得所有数据,而在其他情况下,它可能不会.

但是,如果套接字缓冲区中仍有数据(因为我没有全部recv()),并且我再次将同一个套接字传递给select(),它将不会被返回为"准备好"进行读取,即使我知道那里有数据.

我想我的问题是确实从select()的角度来确认"准备阅读"的真正意义,以及处理这个问题的最佳方法是什么.继续recv()直到EWOULDBLOCK看起来有点黑客 - 因为我正在使用select().

我错误地想到了这个吗?我意识到我可以使用更大的recv缓冲区,但总有可能会有更多的读取而不是recv可以拉 - 所以什么是"正确"的方式来处理这个来自select()?

提前致谢.

编辑:如评论中所述,我忽略了提到这是一个SSL服务器,显然select()在使用包裹套接字时表现不同.

python sockets ssl network-programming

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

标签 统计

python ×3

gzip ×1

network-programming ×1

sockets ×1

ssl ×1

string ×1