Python console file manager

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

Здравствуйте.
Есть идея разработать приложение.
Существуют консольные файловые менеджеры. Не переходы по директориям с помощью команд, а именно в консоли стрелками можно перемещаться по папкам и файлам.
Нужно сделать как Total Commander. Где 2 столбца (2 директории), между которыми можно переходить табом.
Пока думаю, как реализовать перемещение по папкам и файлам. То ли брать вывод команды ls или какого метода для вывода списка текущих папок и файлов в текущей директории во временный текстовый файл, то ли записывать их в список.
Интересует общее. Как реализовать? Какие библиотеки использовать? Какой-то общий алгоритм.
Заранее благодарен!

gscraft

Хех, Вы просите буквально набросать Вам стек и частью архитектуру приложения, но при этом слабо понимаете предмет, судя по желанию использовать вывод в файл (не прибегая к очевидному использованию встроенных функций языка). Так вот, какие библиотеки использовать? Достаточно стандартной библиотеки языка:
https://docs.python.org/3/library/filesys.html
https://docs.python.org/3/library/curses.html

Какой алгоритм использовать? Делайте то, что описали. Получайте списки файлов, выводите панели, обрабатывайте ввод.

Ternick

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

Про пути и директорию могу сказать больше. Целый модуль os и os.path за этим и нужен. Вы в данном проекте можете использовать такие импорты, но перед этим узнайте что и как работает:

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

Источник

Читайте также:  METANIT.COM

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

A VIM-inspired filemanager for the console

License

ranger/ranger

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

ranger is a console file manager with VI key bindings. It provides a minimalistic and nice curses interface with a view on the directory hierarchy. It ships with rifle , a file launcher that is good at automatically finding out which program to use for what file type.

screenshot

For mc aficionados there’s also the multi-pane viewmode.

two panes multiple panes

This file describes ranger and how to get it to run. For instructions on the usage, please read the man page ( man ranger in a terminal). See HACKING.md for development-specific information.

For configuration, check the files in ranger/config/ or copy the default config to ~/.config/ranger with ranger —copy-config (see instructions).

The examples/ directory contains several scripts and plugins that demonstrate how ranger can be extended or combined with other programs. These files can be found in the git repository or in /usr/share/doc/ranger .

A note to packagers: Versions meant for packaging are listed in the changelog on the website.

  • Authors: see AUTHORS file
  • License: GNU General Public License Version 3
  • Website: https://ranger.github.io/
  • Download: https://ranger.github.io/ranger-stable.tar.gz
  • Bug reports: https://github.com/ranger/ranger/issues
  • git clone https://github.com/ranger/ranger.git
  • An easily maintainable file manager in a high level language
  • A quick way to switch directories and browse the file system
  • Keep it small but useful, do one thing and do it well
  • Console-based, with smooth integration into the unix shell
  • UTF-8 Support (if your Python copy supports it)
  • Multi-column display
  • Preview of the selected file/directory
  • Common file operations (create/chmod/copy/delete/. )
  • Renaming multiple files at once
  • VIM-like console and hotkeys
  • Automatically determine file types and run them with correct programs
  • Change the directory of your shell after exiting ranger
  • Tabs, bookmarks, mouse support.
  • Python ( >=2.6 or >=3.1 ) with the curses module and (optionally) wide-unicode support
  • A pager ( less by default)
  • file for determining file types
  • chardet (Python package) for improved encoding detection of text files
  • sudo to use the «run as root» feature
  • python-bidi (Python package) to display right-to-left file names correctly (Hebrew, Arabic)

For enhanced file previews (with scope.sh ):

  • img2txt (from caca-utils ) for ASCII-art image previews
  • w3mimgdisplay , ueberzug , mpv , iTerm2 , kitty , terminology or urxvt for image previews
  • convert (from imagemagick ) to auto-rotate images and for image previews
  • rsvg-convert (from librsvg ) for SVG previews
  • ffmpeg , or ffmpegthumbnailer for video thumbnails
  • highlight , bat or pygmentize for syntax highlighting of code
  • atool , bsdtar , unrar and/or 7z to preview archives
  • bsdtar , tar , unrar , unzip and/or zipinfo (and sed ) to preview archives as their first image
  • lynx , w3m or elinks to preview html pages
  • pdftotext or mutool (and fmt ) for textual pdf previews, pdftoppm to preview as image
  • djvutxt for textual DjVu previews, ddjvu to preview as image
  • calibre or epub-thumbnailer for image previews of ebooks
  • transmission-show for viewing BitTorrent information
  • mediainfo or exiftool for viewing information about media files
  • odt2txt for OpenDocument text files ( odt , ods , odp and sxw )
  • python or jq for JSON files
  • sqlite3 for listing tables in SQLite database (and optionally sqlite-utils for fancier box drawing.)
  • jupyter nbconvert for Jupyter Notebooks
  • fontimage for font previews
  • openscad for 3D model previews ( stl , off , dxf , scad , csg )
  • draw.io for draw.io diagram previews ( drawio extension)

Use the package manager of your operating system to install ranger. You can also install ranger through PyPI: pip install ranger-fm . However, it is recommended to use pipx instead (to benefit from isolated environments). Use pipx run —spec ranger-fm ranger to install and run ranger in one step.

Note that you don’t have to install ranger; you can simply run ranger.py .

To install ranger manually:

This translates roughly to:

sudo python setup.py install --optimize=1 --record=install_log.txt 

This also saves a list of all installed files to install_log.txt , which you can use to uninstall ranger.

After starting ranger, you can use the Arrow Keys or h j k l to navigate, Enter to open a file or q to quit. The third column shows a preview of the current file. The second is the main column and the first shows the parent directory.

Ranger can automatically copy default configuration files to ~/.config/ranger if you run it with the switch —copy-config=( rc | scope | . | all ) . See ranger —help for a description of that switch. Also check ranger/config/ for the default configuration.

  • To get the most out of ranger, read the Official User Guide.
  • For frequently asked questions, see the FAQ.
  • For more information on customization, see the wiki.

For help, support, or if you just want to hang out with us, you can find us here:

  • IRC: channel #ranger on Libera.Chat. Don’t have an IRC client? Join us via the webchat!
  • Reddit: r/ranger

About

A VIM-inspired filemanager for the console

Источник

Lfm (Last File Manager)

Lfm (Last File Manager) — полнофункциональный Python / Curses консольный файловый менеджер, с текстовым пользовательским интерфейсом (TUI / Text User Interface).

Lfm может работать в одно и двух-панельном режиме, с поддержкой вкладок. При запуске в двух-панельном режиме файловый менеджер отображает домашнюю директорию пользователя, выделенное окно является текущим и все действия производятся в нём, второе окно используется для указания куда копировать и перемещать файлы/каталоги, а так же высвечивается информация о активном окне.

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

Lfm работает как с локальными, так и с сетевыми файловыми системами, может работать с различными архивами и образами файловых систем, так же как бы они являлись обычными каталогами.

Сортировать файлы и каталоги можно по шаблону (имени, типу, размеру, дате и пр. ), есть возможность сравнения каталогов, включение и выключения показа скрытых файлов (начинающихся с точки), все операции производятся в фоновом режиме. В зависимости от расширения файлы в Lfm могут быть представлены разными цветами, отдельные каталоги могут быть добавлены в закладки, есть встроенный поиск и ведётся история посещения.

Все настройки файлового менеджера Lfm хранятся в каталоге ~/.lfmrc в нём можно задать свой набор команд, определить собственный набор приложений для открытия определённых типов файлов (задать свои ассоциации файлов), можно сразу указать закладки, задать цвета для определённых типов файлов и многое другое.

Файловый менеджер Lfm ориентирован на управление клавиатурными сочетаниями и полностью поддерживает Юникод (Unicode).

Источник

Оцените статью