0

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

4

2 回答 2

1

就在 Python 中读取 FAT32 文件系统映像而言,Wikipedia 页面包含编写只读实现所需的所有详细信息。

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

于 2017-01-20T09:20:38.580 回答
0

实际上,我遇到了类似的情况,我需要 Python 中的 FAT12/16/32 支持。在网上搜索您可以找到各种实现(例如maxpat78/FATtools、 em- /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)
于 2022-02-03T23:39:54.203 回答