linux에 기본으로 존재하는 head tail이라는것이 있습니다.
특정 파일을 열어서 어떤 형태인지 간단하게 확인하는 용도로 많이 사용하곤 합니다. 이것중 tail을 간단하게 구현해 보도록 하겠습니다.
tail은 덩치가 큰 로그 같은 파일에서 마지막 데이터만 끄집에 내는 용도로 사용할 수 있습니다.
핵심 코드는 seek가 됩니다. 읽은 데이터가 byte type이므로 이것을 decode해줄 필요가 있어서 decode('utf-8') 를 해줍니다.
11_tail.py
import os def get_tail_byte(fname,last_bytes): # Open file with 'b' to specify binary mode with open(fname, 'rb') as file: file.seek(last_bytes * -1, os.SEEK_END) # Note minus sign byte_data = file.read() return byte_data.decode('utf-8') return "" if __name__ == "__main__": print(get_tail_byte("11_tail.py",100))
실행시 끝의 100 byte를 읽어서 출력하는 코드입니다.
결과
code('utf-8') return "" if __name__ == "__main__": print(get_tail_byte("11_tail.py",100))
참고로 결과는 깨끗하게 line 시작 부분이 나오지 않습니다.
댓글 없음:
댓글 쓰기