https://github.com/bashkirtsevich/py-disk-reader
Low-level disk reader on Python
https://github.com/bashkirtsevich/py-disk-reader
disk disk-image fat fat12 fat16 fat32 python3
Last synced: 7 months ago
JSON representation
Low-level disk reader on Python
- Host: GitHub
- URL: https://github.com/bashkirtsevich/py-disk-reader
- Owner: bashkirtsevich
- Created: 2019-10-20T17:10:52.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-11-04T19:31:19.000Z (about 6 years ago)
- Last Synced: 2025-03-16T12:14:05.983Z (11 months ago)
- Topics: disk, disk-image, fat, fat12, fat16, fat32, python3
- Language: Python
- Size: 28.3 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Python low-level disk reader
TL;DR: Python implementation for low-level disk (and disk images) reading, parse MBR, file systems, etc.
# Examples
## FAT12
```python
from hashlib import sha1
from reader import FileReader
with open("images/floppy2.img", "rb") as f:
img = FAT12Reader(FileReader(f))
files = list(img.root_dir)
for i, n in enumerate(files):
print(i, n.name)
bar = files[1]
baz = bar.read()
print(bar.name, sha1(baz).hexdigest(), baz)
print("----")
bar = list(files[6])
for i, n in enumerate(bar):
print(i, n.name)
baz = bar[7].read()
print(bar[7].name, sha1(baz).hexdigest(), baz)
```
## FAT16
```python
from hashlib import sha1
from reader import FileReader
with open("images/fat16.img", "rb") as f:
img = FAT16Reader(FileReader(f))
files = list(img.root_dir)
for i, n in enumerate(files):
print(i, n.name)
bar = files[15]
baz = bar.read()
print(bar.name, sha1(baz).hexdigest(), baz)
print("----")
bar = list(files[0])
for i, n in enumerate(bar):
print(i, n.name)
baz = bar[3].read()
print(bar[3].name, sha1(baz).hexdigest(), baz)
```
## FAT32
```python
from hashlib import sha1
from reader import FileReader
with open("images/fat32.img", "rb") as f:
img = FAT32Reader(FileReader(f))
files = list(img.root_dir)
for i, n in enumerate(files):
print(i, n.name)
bar = files[3]
baz = bar.read()
print(bar.name, sha1(baz).hexdigest(), baz)
bar = list(files[1])
for i, n in enumerate(bar):
print(i, n.name)
baz = bar[3].read()
print(bar[3].name, sha1(baz).hexdigest(), baz)
```