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) 我正在使用 C 语言的应用程序,它将连续数据发送到指定端口。我可以使用“Putty”(使用 telnet 127.0.0.1 端口 30003)查看传入数据。
现在我想捕获该数据进行处理。请建议如何在 python 中做到这一点?
数据以每秒 5 行的速度逐行流动。我应该逐行读取数据进行处理并将其显示在窗口中。
我创建了一个SSL套接字(服务器端)并将套接字放入select()队列.当套接字"准备好"读取时,select()正确返回.
然后我recv(1024)字节.在某些情况下,这将获得所有数据,而在其他情况下,它可能不会.
但是,如果套接字缓冲区中仍有数据(因为我没有全部recv()),并且我再次将同一个套接字传递给select(),它将不会被返回为"准备好"进行读取,即使我知道那里有数据.
我想我的问题是确实从select()的角度来确认"准备阅读"的真正意义,以及处理这个问题的最佳方法是什么.继续recv()直到EWOULDBLOCK看起来有点黑客 - 因为我正在使用select().
我错误地想到了这个吗?我意识到我可以使用更大的recv缓冲区,但总有可能会有更多的读取而不是recv可以拉 - 所以什么是"正确"的方式来处理这个来自select()?
提前致谢.
编辑:如评论中所述,我忽略了提到这是一个SSL服务器,显然select()在使用包裹套接字时表现不同.