Python의 스파스 파일 사용법
-
13-09-2020 - |
문제
다음과 같이 Python에서 스파스 파일을 만듭니다.
>>> f = open('testfile', 'ab')
>>> f.truncate(1024000)
>>> f.close()
파일이 완료되면 디스크 공간은 0을 차지하지만 inode 크기는 잘린 값(1000K)으로 설정됩니다.
igor47@piglet:~/test$ ls -lh testfile
-rw-r--r-- 1 igor47 igor47 1000K 2010-07-09 04:02 testfile
igor47@piglet:~/test$ du -hs testfile
0 testfile
Python 내에서 파일의 실제 공간 사용량(할당된 크기)을 어떻게 얻나요?그만큼 stat
호출은 파일의 겉보기 크기를 반환하고 전체 파일을 읽는 것 외에 실제 사용법을 얻는 다른 방법을 모릅니다(상당히 커질 수 있음).
>>> os.stat('testfile').st_size
1024000
해결책
>>> os.stat('testfile').st_blocks*512
0
짜잔 :)
st_blocks
파일에 실제로 할당된 512바이트 블록의 수입니다.참고하세요 st_blocks
모든 운영 체제에 존재한다고 보장할 수는 없지만 스파스 파일을 지원하는 운영 체제는 일반적으로 존재합니다.
제휴하지 않습니다 StackOverflow