手动文件选择工具

mansel的Python项目详细描述


曼塞尔

mansel是一个python库和命令行工具,用于从树视图中手动选择文件和目录。

功能

  • 具有目录结构树状视图的图形用户界面。
  • 支持在目录树中预先选择路径。
  • 正在运行选定目录和文件大小的总和。
  • 运行在后台线程中计算的选择大小的总和。

安装

mansel可以使用pip安装:

pip install mansel

mansel包取决于将qt运行时和python绑定打包到它的pyside2。 或者,可以使用

安装mansel命令行工具
pip install mansel-pyqt

mansel-pyqt取决于pyqt5并要求单独安装qt运行时。

manselmansel pyqt都依赖于mansel lib包,如果您想在另一个项目中使用mansel的功能而不安装命令行工具,则可以直接安装该包。

用法

mansel可以使用从命令行运行

mansel --path PATH --selection SELECTION

其中path是用于文件选择的根路径,而selection是一个文件,包含相对于path的以换行分隔的路径列表,在打开文件选择窗口时应选择该列表。调用mansel将打开一个对话框窗口,其中path的内容显示为一个可展开的树状视图,每个文件和目录都有复选框。可以选择和取消选择单个文件和目录,也可以展开目录以选择路径path下的单个文件。当按下ok退出窗口时,所选文件和目录的列表将打印到stdout

使用说明

  • 如果选择-,则从stdin中读取选择列表
  • 当前选择大小的运行记录显示在窗口底部。计算在后台线程上执行。重新计算所选大小时,大小总和后跟"(正在计算)。
  • 取消ctrl+wctrl+q全部关闭窗口而不打印到stdout
  • ctrl+enter相当于按ok
  • mansel climansel的包装器。有效地,安装mansel cliinsteallsmanselpyside2mansel不将pyside2列为允许它与pyqt5一起使用的依赖项)并建立一个调用python-m mansel的包装sript

API

在更大的qt项目中使用mansel时,使用手动文件选择的接口有两个主要类:

  1. uidialog(根路径,选择,父项):一个完整的对话框窗口,显示文件系统的树状视图,所有条目都有复选框。
  2. < > >
    • 根路径:要在文件ssytem的树视图中显示的顶级目录。
    • 选择:相对于第一次显示对话框窗口时应选择的文件的根路径的路径列表。
    • 父对象:对话框窗口的父qt对象。
    1. checkablefilesystemmodel:支持从树视图中选择项的文件系统的数据模型。
    2. < > >

      贡献

      mansel在许可的0bsd许可下分发。 欢迎外界接触。 投稿应在0BSD许可下获得许可。 如果你想加上你的名字o贡献者列表,将其添加到authors.md,作为提交的一部分。

      虽然许可证不需要确认,但如果您在项目中使用mansel,我们仍会感谢您的确认。 如果您对mansel进行了改进,如果共享是可行的,请将其共享。

      相关项目

      • treesel提供了一个基于终端的目录树视图,用于选择要打印到stdout的文件。但是,它只允许选择单个文件。在编写mansel之前,我们花了一些精力寻找一个可以选择和打印文件但未找到treesel的现有项目。稍后在执行搜索以查看名称treeselect是否可用于python包时会找到它。
      • urwid是一个python终端接口库。urwid文档中的一个示例项目是文件浏览器naemdbrowse.py,它允许选择多个文件,然后在退出时打印出文件路径。
      • fzf是一个终端程序,允许通过模糊查找路径字符串来选择文件路径。有许多类似的项目(参见fzf的related projects列表)。fzf没有树状视图,但它允许选择和打印到stdout的多个文件路径。

      未来方向

      mansel满足其原始设计要求(树状视图文件选择,具有预选某些文件的功能,并具有所选文件大小的连续总和)。下面是一些可能的未来改进:

      • 实现控制台版本。这个实现可能基于treesel(使用curses模块)或urwid的browse.py。或者,它可以使用提示工具包。

      • 改进持续集成:

        • 对新提交运行测试
        • 对最新版本的依赖项运行夜间测试
        • 添加Pylint和PycodeStyle测试
        • 添加单击复选框和按钮的UI测试
      • 改进包装:

        • 创建pypi包
        • 创建conda包
        • 创建其他包(pyinstaller?Linux快照包?)

      欢迎加入QQ群-->: 979659372 Python中文网_新手群

      推荐PyPI第三方库


热门话题
java如何将字符串转换为自定义对象   java如何从socket方法获取数据?   Java中的soap读取回车和新行   java在单击时替换图像   java推荐的使用RXJava执行异步任务的方法   java MySql连接器JDBC驱动程序不支持连接池吗?   java将活动堆栈清理到顶部   java计数用户输入的数量   java从webservice下载大文件导致应用程序性能问题   JavaLocalDate。EPOCH不可用   java如何在使用Selenium等待一定时间后,在页面无法加载(get(url))时自动刷新页面   java Calendar setLenient方法不允许检查年份字段的健全性   java Eclipse和intelliJ 安卓 SDK问题   java为什么我可以在没有super关键字的情况下调用父方法?   java iText的PDF格式不好