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中进行.)

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...