常规我们所使用的方法是os.path.getsize(),今天见到一个写法是使用os.lseek()函数的方法。于是就特地查了查,然后顺便搞清楚喽。
(1)首先上代码看看lseek是如何使用的:
def file_size(filename):
'''
获取给定文件的大小
@filename - 文件的路径
Returns 文件的大小
'''
# Using open/lseek works on both regular files and block devices
fd = os.open(filename, os.O_RDONLY)
try:
return os.lseek(fd, 0, os.SEEK_END)
except KeyboardInterrupt as e:
raise e
except Exception as e:
raise Exception("file_size failed to obtain the size of '%s': %s" % (filename, str(e)))
finally:
os.close(fd)
lseek()方法语法格式如下:
os.lseek(fd, pos, how)
-
fd -- 文件描述符。
-
pos -- 这是相对于给定的参数 how 在文件中的位置。。
-
how -- 文件内参考位置。SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_