手动文件选择工具
mansel的Python项目详细描述
曼塞尔
mansel
是一个python库和命令行工具,用于从树视图中手动选择文件和目录。
功能
- 具有目录结构树状视图的图形用户界面。
- 支持在目录树中预先选择路径。
- 正在运行选定目录和文件大小的总和。
- 运行在后台线程中计算的选择大小的总和。
安装
mansel
可以使用pip安装:
pip install mansel
mansel
包取决于将qt运行时和python绑定打包到它的pyside2
。
或者,可以使用
mansel
命令行工具
pip install mansel-pyqt
mansel-pyqt取决于pyqt5
并要求单独安装qt运行时。
mansel
和mansel pyqt
都依赖于mansel lib
包,如果您想在另一个项目中使用mansel
的功能而不安装命令行工具,则可以直接安装该包。
用法
mansel
可以使用从命令行运行
mansel --path PATH --selection SELECTION
其中path
是用于文件选择的根路径,而selection
是一个文件,包含相对于path
的以换行分隔的路径列表,在打开文件选择窗口时应选择该列表。调用mansel
将打开一个对话框窗口,其中path
的内容显示为一个可展开的树状视图,每个文件和目录都有复选框。可以选择和取消选择单个文件和目录,也可以展开目录以选择路径path
下的单个文件。当按下ok
退出窗口时,所选文件和目录的列表将打印到stdout
使用说明
- 如果
选择
是-
,则从stdin中读取选择列表
- 当前选择大小的运行记录显示在窗口底部。计算在后台线程上执行。重新计算所选大小时,大小总和后跟"(正在计算)。
取消
,ctrl+w
,ctrl+q
全部关闭窗口而不打印到stdout
ctrl+enter
相当于按ok
mansel cli
是mansel
的包装器。有效地,安装mansel cli
insteallsmansel
和pyside2
(mansel
不将pyside2
列为允许它与pyqt5
一起使用的依赖项)并建立一个调用python-m mansel
的包装sript
API
在更大的qt项目中使用mansel
时,使用手动文件选择的接口有两个主要类:
uidialog(根路径,选择,父项)
:一个完整的对话框窗口,显示文件系统的树状视图,所有条目都有复选框。 < > >根路径
:要在文件ssytem的树视图中显示的顶级目录。选择
:相对于第一次显示对话框窗口时应选择的文件的根路径的路径列表。父对象
:对话框窗口的父qt对象。checkablefilesystemmodel
:支持从树视图中选择项的文件系统的数据模型。 < > >- treesel提供了一个基于终端的目录树视图,用于选择要打印到stdout的文件。但是,它只允许选择单个文件。在编写
mansel
之前,我们花了一些精力寻找一个可以选择和打印文件但未找到treesel
的现有项目。稍后在执行搜索以查看名称treeselect是否可用于python包时会找到它。 - urwid是一个python终端接口库。urwid文档中的一个示例项目是文件浏览器naemd
browse.py
,它允许选择多个文件,然后在退出时打印出文件路径。 - fzf是一个终端程序,允许通过模糊查找路径字符串来选择文件路径。有许多类似的项目(参见fzf的related projects列表)。
fzf
没有树状视图,但它允许选择和打印到stdout的多个文件路径。 实现控制台版本。这个实现可能基于
treesel
(使用curses
模块)或urwid的browse.py
。或者,它可以使用提示工具包。改进持续集成:
- 对新提交运行测试
- 对最新版本的依赖项运行夜间测试
- 添加Pylint和PycodeStyle测试
- 添加单击复选框和按钮的UI测试
改进包装:
- 创建pypi包
- 创建conda包
- 创建其他包(pyinstaller?Linux快照包?)
贡献
mansel
在许可的0bsd许可下分发。
欢迎外界接触。
投稿应在0BSD许可下获得许可。
如果你想加上你的名字o贡献者列表,将其添加到authors.md,作为提交的一部分。
虽然许可证不需要确认,但如果您在项目中使用mansel
,我们仍会感谢您的确认。
如果您对mansel
进行了改进,如果共享是可行的,请将其共享。
相关项目
未来方向
mansel
满足其原始设计要求(树状视图文件选择,具有预选某些文件的功能,并具有所选文件大小的连续总和)。下面是一些可能的未来改进: