更好的python cli集成
pyli的Python项目详细描述
使用python编写更好的脚本
您没有错过编写Perl一行程序吗?或者也许你 比find的所有选项都熟悉python,但是喜欢文本 互动范式?pyli旨在使使用python和 所有的都是电池和你最喜欢的地方:外壳。
安装
pyli可通过pip:
pip install pyli
或者直接通过git和setup.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的变量
- line(li,l)-允许您访问每一行
- lines(lis,ls)-访问line生成器
- contents(cont,cs)-允许您访问所有stdin 在一个字符串中
- part,(p)-允许您访问 空格分隔线
- parts,(ps)-访问part生成器
- stdin,stdout,stderr-指向sys.std*流的快捷方式
- 接受任意gnu样式的参数(-c,–blah),并使它们可用
- 打印最后一条语句;如果是赋值,则打印赋值 到变量
- 如果我们使用line/part,则打印最后一条语句 每行
请注意,在 A时间:还没有人把它们组合成 有道理,所以如果你想要多个变量,你必须 你自己动手吧。
许可证
版权所有(C)<;2014>;<;TheNoviceof>;
兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:
上述版权公告及本许可公告须包括在 软件的所有副本或大部分。
本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与软件、使用或其他交易有关 软件。