经过研究,我找到了一种无需锁定即可读取文件的解决方案。但我无法解码字符串/字符中描述符的接收缓冲区。这该怎么做?或者是否有其他选项可以不阻塞地读取文件,而不使用字节?
filename = '/var/log/auth.log'
fopen = os.open(filename, os.O_NONBLOCK | os.O_RDONLY)
while True:
data = os.read(fopen, 1024)
if len(data) > 0:
#logger just for example in code is another function
logger.info('DATA: ',data)
#print data
我收到错误:
TypeError: not all arguments converted during string formatting
答案 0 :(得分:0)
您正在传递值data
to be formatted into消息,但您的消息并未包含要替换此消息的字段。它默认遵循printf-style string formatting syntax。
logger.info('DATA: %s', data)