【问题标题】:How to extract from FAT16 filesystem image in Python如何在 Python 中从 FAT16 文件系统映像中提取
【发布时间】:2017-06-05 05:23:03
【问题描述】:

我有一个 FAT(16 位)的图像,我想将图像解析为文件,以便我可以获取图像中的文件。

【问题讨论】:

  • 可能不会。问题是什么?
  • 我想在python中获取FAT格式的文件

标签: python fat fat16


【解决方案1】:

就在 Python 中读取 FAT32 文件系统映像而言,Wikipedia page 具有编写只读实现所需的所有细节。

Construct 可能有一些用处。看起来他们有一个 FAT16 (https://github.com/construct/construct/blob/master/construct/examples/formats/filesystem/fat16.py) 的示例,您可以尝试扩展它。

【讨论】:

    【解决方案2】:

    实际上,我遇到了类似的情况,我需要 Python 中的 FAT12/16/32 支持。在网上搜索可以找到各种实现(例如maxpat78/FATtoolsem-/grassohisahi/PyFAT12)。

    这些库当时都无法通过 PyPI 获得,或者缺少我需要的功能,因此(完全公开)我决定自己编写,但我会尽可能客观地总结一下:

    pyfatfs 支持 FAT12、FAT16 以及 FAT32,包括 VFAT(长文件名),并且可以通过 pip 作为纯 Python 包安装(不需要和/或包含诸如 mtools 之类的原生依赖项)。它实现了PyFilesystem2 的功能,这是一个跨不同文件系统实现(SSH、AWS S3、OSFS 主机目录传递……)的基本文件操作框架。除此之外,pyfatfs 还可以单独使用(不使用 PyFilesystem2),以防您需要进行更多低级操作(操作目录/文件条目、更改磁盘属性、格式化磁盘/图像、操作 FAT 等)。

    例如,通过 PyFilesystem2 将文件从软盘映像复制到您的主机:

    import fs
    fat_fs = fs.open_fs("fat://my_diskette.img")  # Open disk image
    host_fs = fs.open_fs("osfs:///tmp") # Open '/tmp' directory on host
    fs.copy.copy_dir(fat_fs, "/", host_fs, "/") # Copy all files from the disk image to the host_fs filesystem (/tmp directory on host)
    

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 2020-09-30
      • 1970-01-01
      • 2022-06-18
      • 1970-01-01
      • 2013-05-22
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      相关资源
      最近更新 更多