python读取文件选择器中的文件_PathPicker-从bash输出中选择文件的python库

PathPicker是一个简单的命令行工具,解决了从bash输出中选择文件的永久性问题。PathPicker将:解析所有输入行以查找类似于文件的条目

在方便的选择器UI中显示管道输入

编辑您喜欢的文件 $EDITOR

与他们执行任意命令

通过观看一个简单的演示,最容易理解:

例子

安装PathPicker之后,使用它就像将其管道输送到一样容易fpp。它需要各种各样的输入-请尝试以下所有选项:

git status | fpp

hg status | fpp

git grep "FooBar" | fpp

grep -r "FooBar" . | fpp

git diff HEAD~1 --stat | fpp

find . -iname "*.js" | fpp

arc inlines | fpp

还有很多其他您想要的东西。

安装

如果您使用的系统没有Homebrew,则安装PathPicker仍然很容易,您可以直接通过网盘下载PathPicker的源代码。

进阶功能

如上所述,PathPicker允许您还使用指定的文件执行任意命令。这是显示git checkout对所选文件执行的命令的示例:

所选文件将附加到命令前缀以形成最终命令。如果在命令中间需要文件,则可以改用$F令牌,例如:

cat $F | wc -l

另一个重要的注意事项是,默认情况下,PathPicker仅选择文件系统上存在的文件。如果您想跳过此操作(可能是到选定的已删除文件git status),只需使用--no-file-checks(或-nfc简称)标志运行PathPicker 。

PathPicker如何工作?

PathPicker是bash脚本和一些小型Python模块的组合。它实质上包括三个步骤:

首先,bash脚本将所有标准重定向到python模块,该模块解析并提取候选文件名。因为到PathPicker的输入可以是来自另一个程序的任何标准输出,所以使用一系列正则表达式提取这些候选对象。我们不会为每个程序创建专门的解析器,而是将所有内容视为嘈杂的输入,并通过正则表达式选择候选对象。为了限制对文件系统的调用次数(检查是否存在),我们对提取的候选对象进行了相当严格的限制。

不利之处在于,没有扩展名的没有扩展名的单个文件(如test)的文件将无法匹配。这是对PathPicker的已知限制,这意味着它有时有时无法在输入中找到有效文件。

接下来,curses向用户呈现一个内置的选择器UI 。在这里,您可以选择一些文件进行编辑或输入要执行的命令。

最后,python脚本将命令输出到bash文件,稍后由原始bash脚本执行。

它不是世界上最优雅的体系结构,但(在我们看来)提供了很多实用性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值