逐行读取缓冲区的内容

Reading contents of buffer line by line

我必须逐行解析printfbuf的内容,我该怎么做? 我尝试了以下代码,但它每行打印一个字符:

import StringIO
import ctypes

printbuffer = ctypes.create_string_buffer(100000)
print_buff = ctypes.c_char_p(ctypes.addressof(printbuffer))

buf = StringIO.StringIO(print_buff)
for x in buf.readline():
    print(x)

你想要 readlines(复数),而不是 readline
readline 读取一行,returns 读取一行(因此您最终会遍历字符串中的字符,一次一个),而 readlines returns 文件的每一行,一个接一个。
逐行迭代是文件对象(和 StringIO 对象)的默认设置,因此您可以只使用

for x in buf:
    print(x)  # you may want to print x[:-1] to avoid extra newlines