Размер запроса файла блочного устройства в Python

У меня есть сценарий Python, который читает файл (обычно от оптических сред), маркировка нечитабельных секторов, чтобы позволить перепопытке читать сказала что нечитабельные секторы относительно другого оптического читателя.

Я обнаружил, что мой сценарий не работает с блочными устройствами (например,/dev/sr0), для создания копии содержавшей файловой системы ISO9660/UDF, потому что os.stat().st_size нуль. Алгоритм в настоящее время должен знать размер файла заранее; я могу изменить это, но проблема (знания размера блочного устройства) остается, и этому не отвечают здесь, таким образом, я открываю этот вопрос.

Я знаю о следующих двух, связанных ТАК вопросы:

Поэтому я спрашиваю: в Python, как я могу получить размер файла файла блочного устройства?

5
задан Community 23 May 2017 в 12:23
поделиться

1 ответ

Самое "чистое" (т.е. не зависящее от внешних томов и наиболее многоразовое) решение на 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, 0, os.SEEK_END)
    finally:
        os.close(fd)
8
ответ дан 18 December 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: