Python相当于perl -pe?

前端之家收集整理的这篇文章主要介绍了Python相当于perl -pe?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要从一些文本文件中选出一些数字.我可以用grep选出我需要的行,但不知道如何从行中提取数字.一位同事向我展示了如何用perl的bash来做到这一点:
cat results.txt | perl -pe 's/.+(\d\.\d+)\.\n/\1 /'

但是,我通常用Python编写代码,而不是Perl.所以我的问题是,我可以用同样的方式使用Python吗?也就是说,我可以把一些东西从bash转到Python,然后直接得到stdout的结果?如果这是有道理的.或者Perl在这种情况下更方便?

解决方法

是的,你可以从命令行使用Python. python -c< stuff>将运行< stuff>作为Python代码.例:
python -c "import sys; print sys.path"

没有直接相当于Perl的-p选项(自动输入/输出逐行处理),但这主要是因为Python不使用与$相同的概念,而不是Perl所做的那些Python,所有输入和输出都是手动完成的(通过raw_input()/ input()和print / print()).

对于你的具体例子:

cat results.txt | python -c "import re,sys; print ''.join(re.sub(r'.+(\d\.\d+)\.\n',r'\1 ',line) for line in sys.stdin)"

(显然有些更笨拙,可能最好只是写脚本来在实际的Python中进行.)

猜你在找的Python相关文章