prs是一个实用程序,允许您在shell命令中使用python列表理解。

prs的Python项目详细描述


减贫战略

prs是一个小实用程序,它允许您将内容管道化到python并在列表理解中处理它们。

如果您曾经希望能够使用python列表理解操作shell中的项,那么prs就是为您准备的。

安装

只要pip install prs

用法

减贫战略很简单。如果从shell向其传递内容,它将以名为i(不带final (换行符)返回给脚本,并期望脚本返回字符串或iterable返回给名为o的变量。那个 然后变量被打印到stdout,这样您就可以将它通过管道发送到sh来执行。

$ ls -1
LICENSE
prs/
README.md
setup.cfg
setup.py

$ ls -1 | prs "o = [l.lower() for l in i]"
license
prs
readme.md
setup.cfg
setup.py

多行可以用分号分隔。

已经导入了各种库(但可以自行导入):

  • 操作系统
  • 回复
  • 系统
  • pathlib.path

示例

注意:这里的示例实际上不会运行这些命令,它们只会显示这些命令,这样您就可以看到 快跑。要运行real命令,只需将| sh附加到每个示例。

.bak附加到当前目录中的所有文件:

$ ls -1 | prs "o = ['mv {} {}.bak'.format(l, l) for l in i if Path(l).is_file()]"
mv LICENSE LICENSE.bak
mv README.md README.md.bak
mv setup.cfg setup.cfg.bak
mv setup.py setup.py.bak

将所有条目连接成一个:

02:28:39 $ ls -1 | prs "o = 'touch ' + ' '.join(i)"
touch LICENSE prs README.md setup.cfg setup.py

完全忽略所有输入:

02:29:35 $ ls -1 | prs "o = 'hi'"
hi

更改所有子目录中所有文件的扩展名:

$ prs 'o = ["mv %s %s" % (l, l.with_suffix(".2py")) for l in Path(".").glob("**/*.py")]'
mv setup.py setup.2py
mv build/lib/prs/cli.py build/lib/prs/cli.2py
mv build/lib/prs/__init__.py build/lib/prs/__init__.2py
mv prs/cli.py prs/cli.2py
mv prs/__init__.py prs/__init__.2py

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

推荐PyPI第三方库


热门话题
java JPA。Eclipselink没有为mySQL提供密码,但它应该提供   我的Servlet和@FormDataParam存在java问题   java将什么作为上下文参数传递到文件I/O方法中?   如果两个值相同,java无法找到其中一个单选按钮   java在变量和方法名中使用下划线   JavaSpringMVC单线程安全?   klazz类的java Arraylist(反射Api)   java如何在数字字符串中查找最频繁的数字?   JavaAPI设计:使数据更易于阅读与强制更多API调用   JavaHadoopMapReduceforGoogleWebGraph   java无法启动gauge API:Runner意外退出   java如何在bluemix上使用ibm工作负载调度器?   拉取一年中某一周特定日期的所有日期   java为什么是我的角节点。js应用程序将图像上传到S3� 邮递员正确上传时的符号?   在不使用任何第三方jar的情况下将文件从本地传输到linux系统(java代码)   java将现有文件夹复制到Eclipse工作区中新创建的项目中   Java中的regex RegExp帮助   当使用“系统”外观时,Java组合框setSelectedItem会出现故障   JavaASM:在类的方法中获取局部变量名和值