Python
[ python ] 파일을 뒤에서 부터 불러오고 싶을 때.. seek 오류관련
k1rha
2012. 7. 16. 20:42
열혈 강의 파이썬 책에서 보면 seek 파일을 파일의 끝부터 거꾸로 불러오고 싶을경우
f.seek(-[offset],2) 와 같은 인자값으로 거꾸로 불러 올수 있다고 되어 있다.
0의 경우 파일의 처음부터 1의 경우 현위치부터 2의 경우 파일의 끝부터를 나타내게 되는데,
필자는 위와같은 코드를 바로 적용시키면
FILE_END=f_log.seek(-3,2)
io.UnsupportedOperation: can't do nonzero end-relative seeks
와같은 에러를 뱉어 냈다. 사실 정확한 원인은 잘 파악하지 못한 상태이지만, 아래와 같은 방법으로 파일의 끝부터 4000바이트 정도 떨어진 크기를 불러오는 식으로 처리 하게 되었다.
영 찜찜하지만...-_- 왜 바로하면 안되는지와 해결법을 알고 계시는분은
[ k1rha@hacktizen.com ]으로 알려주시면 밥한끼 사도록 하겠습니다.
f_log = open(LOG_PATH_LIST[0],'r+'); FILE_END=f_log.seek(0,2) if(FILE_END < 4000): f_log.seek(0) else: FILE_BACKWORD_SIZE=FILE_END-4000 f_log.seek(FILE_BACKWORD_SIZE,0) |