Еще более чистая версия, совместимая с python3, которая не вставляет, а добавляет & amp; reverse:
def tail(f, window=1):
"""
Returns the last `window` lines of file `f` as a list of bytes.
"""
if window == 0:
return b''
BUFSIZE = 1024
f.seek(0, 2)
end = f.tell()
nlines = window + 1
data = []
while nlines > 0 and end > 0:
i = max(0, end - BUFSIZE)
nread = min(end, BUFSIZE)
f.seek(i)
chunk = f.read(nread)
data.append(chunk)
nlines -= chunk.count(b'\n')
end -= nread
return b'\n'.join(b''.join(reversed(data)).splitlines()[-window:])
использовать его следующим образом:
with open(path, 'rb') as f:
last_lines = tail(f, 3).decode('utf-8')
Как упомянул @MebinJoe, это была проблема с чванством. Не удалось решить проблему с Swagger, но в итоге использовал Postman для тестирования вышеуказанного кода. Несколько файлов были успешно прикреплены и отправлены по электронной почте.