Я попытался выполнить поиск в 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, но ничего не нашел, как ее исправить.
Любая помощь будет принята с благодарностью.
Как ясно сказано в сообщении об ошибке, pytsk3.TSK_FS_TYPE_DETECT
— это целое число. Если это не должен был быть int, проверьте свой код, вы, вероятно, делали что-то вроде pytsk3.TSK_FS_TYPE_DETECT = 7
раньше. Но, не зная библиотеки, если она соблюдает соглашения Python, это, вероятно, константа (потому что они должны быть написаны в верхнем регистре), поэтому, вероятно, это скорее int, чем функция...
Я не знаю эту библиотеку, но просто погуглив (code.google.com/archive/p/aff4/wikis/TSKPythonBnding.wiki), похоже, file_system = pytsk3.FS_Info(image_name)
может быть то, что вы ищете.
Нет, я не использую никаких руководств, я взял это из его формулировки, чтобы определить тип файловой системы, разве это не то, что должно делать? Забыл упомянуть, что я использую библиотеку pytsk3.
@slothrop - я пробовал file_system = pytsk3.FS_Info(image_name), но получаю следующую ошибку: "file_system = pytsk3.FS_Info(image_name) ^^^^^^^^^^^^^^^^^^^ OSError : FS_Info_Con: (tsk3.cpp:214) Невозможно открыть изображение как файловую систему по смещению: 0x00000000 с ошибкой: «Невозможно определить тип файловой системы». Я искал эту ошибку в Google, но ничего не нашел.
@ThierryLathuille - код должен быть таким, как упомянул ленивец, и он должен быть таким: «file_system = pytsk3.FS_Info (image_name)»
Ах, извините. Возможно, отредактируйте свой вопрос и заголовок, чтобы отразить ошибку, которую вы получаете сейчас, чтобы люди могли видеть, что это вопрос pytsk3, и, надеюсь, кто-то, кто знает библиотеку, увидит его.
Хотел оставить комментарий, но не собирался регистрироваться.
Когда ваш выбор *, запустите цикл for через ваш volume_info (я предполагаю, что это pytsk3.Volume_Info). Если том имеет флаг pytsk3.TSK_VS_PART_FLAG_META или pytsk3.TSK_VS_PART_FLAG_UNALLOC, перейдите к следующему тому.
Удачи
Это говорит о том, что
TSK_FS_TYPE_DETECT
является целочисленной константой, а не вызываемой функцией. Вы следуете учебнику или чему-то, что говорит вам использовать его так?