我必须逐行解析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)
答案 0 :(得分:2)
您需要readlines
(复数),而不是readline
readline
读取一行并返回它(所以你最终迭代一个字符串中的字符,一次一个),而readlines
一个接一个地返回文件的每一行。
逐行迭代是文件对象(和StringIO对象)的默认值,因此您可以使用
for x in buf:
print(x) # you may want to print x[:-1] to avoid extra newlines