在Python中查询块设备文件的大小
发布时间:2020-12-20 12:16:36 所属栏目:Python 来源:网络整理
导读:我有一个 Python脚本,它读取标记不可读扇区的文件(通常来自光学媒体),允许重新尝试在不同的光学阅读器上读取所述不可读的扇区. 我发现我的脚本不能与块设备(例如/ dev / sr0)一起使用,以便创建所包含的ISO9660 / UDF文件系统的副本,因为os.stat().st_size为
我有一个
Python脚本,它读取标记不可读扇区的文件(通常来自光学媒体),允许重新尝试在不同的光学阅读器上读取所述不可读的扇区.
我发现我的脚本不能与块设备(例如/ dev / sr0)一起使用,以便创建所包含的ISO9660 / UDF文件系统的副本,因为os.stat().st_size为零.该算法目前需要提前知道文件大小;我可以改变这一点,但问题(知道块设备大小)仍然存在,而且这里没有回答,所以我打开这个问题. 我知道以下两个相关的SO问题: > Determine the size of a block device(/ proc / partitions,ioctl到ctypes) 因此,我问:在Python中,如何获取块设备文件的文件大小? 解决方法
我已经达到的“最干净”(即不依赖于外部卷和最可重用的)Python解决方案,是打开设备文件并在最后搜索,返回文件偏移量:
def get_file_size(filename): "Get the file size by seeking at end" fd= os.open(filename,os.O_RDONLY) try: return os.lseek(fd,os.SEEK_END) finally: os.close(fd) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |