更好的python cli集成

pyli的Python项目详细描述


使用python编写更好的脚本

您没有错过编写Perl一行程序吗?或者也许你 比find的所有选项都熟悉python,但是喜欢文本 互动范式?pyli旨在使使用python和 所有的都是电池和你最喜欢的地方:外壳。

安装

pyli可通过pip

pip install pyli

或者直接通过gitsetup.py

git clone https://github.com/thenoviceoof/pyli.git

cd pyli

sudo python setup.py

示例

让我们做些热身运动:

pyli "2+2" # bc

cat file.txt | pyli "line if 'string' in line else None" # grep

cat file.txt | pyli "sum(len(l) + 1 for l in lines)" # wc -m

现在更复杂的是:

log | pyli "str(time.time()) + ' ' + line" # time stamping a line

cat file.txt | pyli "set(w for s in nltk.sent_tokenize(contents) for w in nltk.word_tokenize)" # bag of words a file

cat file.json | pyli "pickle.dumps(json.loads(conts))" >file.pickle

cat space_sep.dat | pyli "json.dumps(dict(parts))" >file.json

也许分开命令是有意义的:

cat index.html | pyli "for l in [a.get('href') for a in bs4.BeautifulSoup(cs).find_all('a')]: print l" | pyli --text='something' "r = requests.get(li); li if text in r.text else None"

cat index.html | pyli "hashlib.sha1(cs).hexdigest()" | pyli "encryptedfile.EncryptedFile(stdout, getpass.getpass()).write(cs)"

也许你想保持一行代码,但python太固执己见了 让您这样做:

pyli -f "`ls -a`" "for l in f.split('\n'):" "    if '.git' == l: print 'git'"

幽门

功能:

  • 自动导入引用的包
  • 填充特殊的面向cli的变量
    • linelil)-允许您访问每一行
    • lineslisls)-访问line生成器
    • contentscontcs)-允许您访问所有stdin 在一个字符串中
    • part,(p)-允许您访问 空格分隔线
    • parts,(ps)-访问part生成器
    • stdinstdoutstderr-指向sys.std*流的快捷方式
    • 接受任意gnu样式的参数(-c,–blah),并使它们可用
    • 打印最后一条语句;如果是赋值,则打印赋值 到变量
    • 如果我们使用line/part,则打印最后一条语句 每行

请注意,在 A时间:还没有人把它们组合成 有道理,所以如果你想要多个变量,你必须 你自己动手吧。

待办事项

  • 将引擎移到美观的ast库中
  • 确保它在更多的蛇中工作,而不仅仅是2.7.3/2.6.9

另请参见issue tracker

许可证

版权所有(C)<;2014>;<;TheNoviceof>;

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的所有副本或大部分。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与软件、使用或其他交易有关 软件。

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

推荐PyPI第三方库


热门话题
具有较旧spring启动版本的java Maven依赖项   java如何在安卓中获取移动网络活动计划使用历史记录   java CXF抛出了所有策略替代方案都无法满足的问题   java如何创建类似ApachePOI的程序   Java Hashmap如何处理单词网格中的键冲突   java如何在多个下拉列表中搜索下一个元素   如何将css文件导入我的JavaSpringWebApp?   如何在Java中将字符串[]转换为字符串[]?   排序如何在Java中根据列的组合对spark dataframe进行排序?   java错误:无法访问com的zzbej类文件。谷歌。安卓gms。内部的没有找到zzbej   illegalargumentexception Java Comparator引发非法参数异常   java删除ShaperRenderer偏移量   安卓中的java出生日期问题   设置MediaBrowserService和MediaSession时遇到java问题   java对抛出声明的澄清   java在IntelliJ IDEA的Gradle项目的“提供”范围内添加依赖项   带2个变量的java For循环?   java是一个更平坦的问题   使用JACOB保存Word文档(Java)