Задать вопрос
@Ben_r007

Как реализовать консольный файловый менеджер на Python?

Здравствуйте.
Есть идея разработать приложение.
Существуют консольные файловые менеджеры. Не переходы по директориям с помощью команд, а именно в консоли стрелками можно перемещаться по папкам и файлам.
Нужно сделать как Total Commander. Где 2 столбца (2 директории), между которыми можно переходить табом.
Пока думаю, как реализовать перемещение по папкам и файлам. То ли брать вывод команды ls или какого метода для вывода списка текущих папок и файлов в текущей директории во временный текстовый файл, то ли записывать их в список.
Интересует общее. Как реализовать? Какие библиотеки использовать? Какой-то общий алгоритм.
Заранее благодарен!
  • Вопрос задан
  • 1445 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 4
gscraft
@gscraft
Программист, философ
Хех, Вы просите буквально набросать Вам стек и частью архитектуру приложения, но при этом слабо понимаете предмет, судя по желанию использовать вывод в файл (не прибегая к очевидному использованию встроенных функций языка). Так вот, какие библиотеки использовать? Достаточно стандартной библиотеки языка:
https://docs.python.org/3/library/filesys.html
https://docs.python.org/3/library/curses.html

Какой алгоритм использовать? Делайте то, что описали. Получайте списки файлов, выводите панели, обрабатывайте ввод.
Ответ написан
Комментировать
Ternick
@Ternick
Понятия не имею как ты будешь вводить стрелками. Это можно как-то сделать, но в питоне я с таким не сталкивался, я только знаю что в С++ в conio.h есть метод getch, который не блокирует консоль на время ввода.

Про пути и директорию могу сказать больше. Целый модуль os и os.path за этим и нужен. Вы в данном проекте можете использовать такие импорты, но перед этим узнайте что и как работает:
from os import listdir # отдаёт в виде масива содержание директории которая передана первым и единственным аргументов
from os.path import isdir # Проверяет является ли ли строка директрией, нужен из-за того, что можно создать папку test.exe, по идее файл, но на самом деле папка.

Советую изучить эти оба модуля, в импортах я указал малую часть, того что тебе понадобится.
Ответ написан
shurshur
@shurshur
Сисадмин, просто сисадмин...
Для создания интерфейсов смотреть в сторону таких вещей, как curses, urwid, npyscreen,
Ответ написан
Комментировать
@MechanicZelenyy
Эту статью можете использовать в качетсве отправной точки.

Но лучше наращивать сложность постпепенно, потому что вы хотите не просто консольную утилиту, а TUI. Сделайте сначал клон ls, что бы разобратся с файлами и потом уже делайте клон far.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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