«OSError: FS_Info_Con: (tsk3.cpp:214) Невозможно открыть изображение как файловую систему» ​​в Python3 с использованием библиотеки pytsk3

Я попытался выполнить поиск в Google, а также проверил возможные решения здесь, но я до сих пор не знаю, что я делаю неправильно:

partition_choice = int(input("\nEnter the number of the partition you want to examine (or * for all partitions): "))

if partition_choice == '*':
    partitions_to_process = volume_info
else:
    partitions_to_process = partition_choice

file_system = pytsk3.TSK_FS_TYPE_DETECT(image_name)

directory = file_system.open_dir(path='/')

Когда я запускаю этот код и выбираю номер раздела, я получаю следующую ошибку:

file_system = pytsk3.TSK_FS_TYPE_DETECT(image_file)                
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TypeError: 'int' object is not callable

Я прошу пользователя выбрать раздел или все разделы, и после того, как пользователь ввел число или *, код должен перейти к определению типа файловой системы из образа ("image.raw").

Редактировать:

Я изменил следующее «file_system = pytsk3.TSK_FS_TYPE_DETECT(image_name)» на это:

file_system = pytsk3.FS_Info(image_name)

Но я все еще получил ошибку:

file_system = pytsk3.FS_Info(image_name)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: FS_Info_Con: (tsk3.cpp:214) Unable to open the image as a filesystem at offset: 0x00000000 with error: Cannot determine file system type

Я попытался найти эту ошибку в Google, но ничего не нашел, как ее исправить.

Любая помощь будет принята с благодарностью.

Это говорит о том, что TSK_FS_TYPE_DETECT является целочисленной константой, а не вызываемой функцией. Вы следуете учебнику или чему-то, что говорит вам использовать его так?

slothrop 18.04.2023 19:52

Как ясно сказано в сообщении об ошибке, pytsk3.TSK_FS_TYPE_DETECT — это целое число. Если это не должен был быть int, проверьте свой код, вы, вероятно, делали что-то вроде pytsk3.TSK_FS_TYPE_DETECT = 7 раньше. Но, не зная библиотеки, если она соблюдает соглашения Python, это, вероятно, константа (потому что они должны быть написаны в верхнем регистре), поэтому, вероятно, это скорее int, чем функция...

Thierry Lathuille 18.04.2023 19:52

Я не знаю эту библиотеку, но просто погуглив (code.google.com/archive/p/aff4/wikis/TSKPythonBnding.wiki), похоже, file_system = pytsk3.FS_Info(image_name) может быть то, что вы ищете.

slothrop 18.04.2023 19:52

Нет, я не использую никаких руководств, я взял это из его формулировки, чтобы определить тип файловой системы, разве это не то, что должно делать? Забыл упомянуть, что я использую библиотеку pytsk3.

Metjuw 18.04.2023 19:54

@slothrop - я пробовал file_system = pytsk3.FS_Info(image_name), но получаю следующую ошибку: "file_system = pytsk3.FS_Info(image_name) ^^^^^^^^^^^^^^^^^^^ OSError : FS_Info_Con: (tsk3.cpp:214) Невозможно открыть изображение как файловую систему по смещению: 0x00000000 с ошибкой: «Невозможно определить тип файловой системы». Я искал эту ошибку в Google, но ничего не нашел.

Metjuw 18.04.2023 19:59

@ThierryLathuille - код должен быть таким, как упомянул ленивец, и он должен быть таким: «file_system = pytsk3.FS_Info (image_name)»

Metjuw 18.04.2023 19:59

Ах, извините. Возможно, отредактируйте свой вопрос и заголовок, чтобы отразить ошибку, которую вы получаете сейчас, чтобы люди могли видеть, что это вопрос pytsk3, и, надеюсь, кто-то, кто знает библиотеку, увидит его.

slothrop 18.04.2023 20:04
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
7
120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хотел оставить комментарий, но не собирался регистрироваться.

Когда ваш выбор *, запустите цикл for через ваш volume_info (я предполагаю, что это pytsk3.Volume_Info). Если том имеет флаг pytsk3.TSK_VS_PART_FLAG_META или pytsk3.TSK_VS_PART_FLAG_UNALLOC, перейдите к следующему тому.

Удачи

Другие вопросы по теме