самый простой способ программирования виртуальной файловой системы в windows с Python

Я хочу запрограммировать виртуальную файловую систему в Windows с Python.

то есть программа на Python, интерфейс которой на самом деле является"проводником windows". Вы можете создавать и манипулировать файловыми объектами, но вместо того, чтобы создаваться на жестком диске как обычные файлы, они управляются моей программой и, скажем, хранятся удаленно, или зашифрованы, или сжаты, или версионны, или что я могу сделать с Python.

какой самый простой способ сделать это?

5 ответов


хотя, возможно, еще не совсем созрели (к сожалению, у меня нет опыта из первых рук),pywinfuse выглядит ровно как то, что вы ищете.


посмотреть Дукана файловая система пользовательского режима для Windows. Доступны привязки Ruby, .NET (и Java от 3rd party), и я не думаю, что будет сложно написать привязки python.


должен ли он быть Windows-native? Существует по крайней мере один протокол, который может быть просмотрен проводником Windows и обслуживаться бесплатными библиотеками Python: FTP. Вставьте свою программу за pyftpdlib, и все готово.


Если вы пытаетесь написать виртуальную файловую систему (я могу неправильно вас понять) - я бы посмотрел на формат файла контейнера. VHD хорошо документирован вместе с HDI и (встроенным) OSQ. Есть две вещи, которые вам нужно сделать. Во-первых, вам нужно выбрать формат файла/контейнера. После этого это так же просто, как написать API для управления этим контейнером. Если вы хотите, чтобы им манипулировали через интернет, выберите транспортный протокол, а затем просто напишите службу (будет эмулировать драйвер файловой системы), который прослушивает определенный порт и управляет этим контейнером с помощью вашего API


вас может заинтересовать PyFilesystem;

слой абстракции файловой системы для Python

PyFilesystem - это слой абстракции для файловых систем. Точно так же, как файлоподобные объекты Python предоставляют общий способ доступа к файлам, PyFilesystem предоставляет общий способ доступа ко всем файловым системам. Вы можете написать независимый от платформы код для работы с локальными файлами, который также работает с любым из поддерживаемых файловые системы (zip, ftp, S3 и др.).

то, что описание на главной странице не рекламирует, что вы можете тогда разоблачение эта абстракция снова как файловая система, среди прочих SFTP, FTP (хотя в настоящее время disfunct, возможно fixable) и Дукана (Дито), а также взрыватель.