加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在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)
> how to check file size in python?(关于非特殊档案)

因此,我问:在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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读