逐行读取缓冲区的内容
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
我必须逐行解析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