- 论坛徽章:
- 0
|
- ## {{{ http://code.activestate.com/recipes/578095/ (r1)
- import os
- import sys
- def print_first_last_line(inputfile) :
- filesize = os.path.getsize(inputfile)
- blocksize = 1024
- dat_file = open(inputfile, 'rb')
- headers = dat_file.readline().strip()
- if filesize > blocksize :
- maxseekpoint = (filesize // blocksize)
- dat_file.seek(maxseekpoint*blocksize)
- elif filesize :
- maxseekpoint = blocksize % filesize #?
- dat_file.seek(maxseekpoint) #?
- lines = dat_file.readlines()
- if lines :
- last_line = lines[-1].strip()
- print "first line : ", headers
- print "last line : ", last_line
- if __name__ == "__main__" :
- if len(sys.argv) >= 2:
- print_first_last_line(sys.argv[1])
- else:
- sys.exit("Usage %s filename" % sys.argv[0])
- ## end of http://code.activestate.com/recipes/578095/ }}}
复制代码 请问这段取出首末行的脚本中间,
当遇到一个只有几十个字节的文件时,为啥用1024%这个文件的大小 得到的结果,就一定会小于最后一行之前的字节数呢?
也就是说,有??的2行怎么理解? |
|