A library for reading (from) and writing (to) FAT12 file systems
PyFAT12 is a Python 3 library that allows handling FAT12 file systems. FAT12, or original FAT, is a file system designed by Microsoft that was used primarily on 5.25-inch and 3.5-inch floppy disks.
Currently PyFAT12 supports 3.5-inch high density (1.44 MB) floppy disk images and handling any FAT12 file systems on them. It is also possible to format a new FAT12 volume. Files can be opened, overwritten, created, renamed, deleted and so on; subdirectory and volume label support is also present.
This library has not been tested extensively, but basic functionality appears to work. There might still be bugs.
PyFAT12 has been tested on recent Python 3 versions and does not require any libraries beyond the standard library Python comes with.
The library comes with docstrings which can be viewed with
no documentation exists other than this README and the docstrings, but there
are plans to improve the situation.
The following example creates a new 3.5-inch high density (1.44 MB) floppy
DISK1.IMG in the current directory. The image contains a blank,
formatted FAT12 file system:
from pyfat12 import FloppyImage, FAT12 floppy = FloppyImage() fs = FAT12.format(floppy, "Disk label") floppy.save("DISK1.IMG")
Opening up an existing image and lists all files from its root directory:
from pyfat12 import FloppyImage, FAT12 floppy = FloppyImage.open("DISK1.IMG") fs = FAT12(floppy) fileCount = 0 for file in fs.listfiles("/"): fileCount += 1 print(file.name, file.size) print(fileCount, "files in total")
Opening up an existing image, adding a new file (or overwriting an existing one) and saving:
from pyfat12 import FloppyImage, FAT12 floppy = FloppyImage.open("DISK1.IMG") fs = FAT12(floppy) fs.write_file("/HELLO.TXT", b"Hello World!\r\n") floppy.save("DISK1.IMG")
MIT License. See
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.