python - Python 像 Linux grep 一样搜索并打印出整行?
问题描述
让我们以此为例。
>>> t = '''Line 1
... Line 2
... Line 3'''
>>>
re.findall
只打印出类似于Linux的特定模式grep -o
>>> re.findall('2', t)
['2']
>>>
Linux grep
wolf@linux:~$ echo 'Line 2' | grep 2
Line 2
wolf@linux:~$
Linux grep -o
wolf@linux:~$ echo 'Line 2' | grep 2 -o
2
wolf@linux:~$
我知道可以打印出整个输出,但我现在想不出逻辑。
Python 中的预期输出
Line 2
如果有更好的方法可以做到这一点,请告诉我。
解决方案
print([l for l in t.splitlines() if "2" in l])
或者,如果您希望将其分开grep
,
print('\n'.join([l for l in t.splitlines() if "2" in l]))
推荐阅读
- kubernetes - 在 Kubernetes 中部署同一软件的多个版本
- python-3.x - 如何使用多处理包在 python 中并行化 for 循环?
- django - 如何在 django 的 db 中保存选定的单选按钮
- windows - Windows 应用程序数据加密,只能由相同的数字签名应用程序解密
- groovy - Groovy 从地图中删除空元素
- cassandra - 如何使用 Kubernetes 部署我的 Cassandra 集群
- rxjs - 将新的 rxjs observable 合并到现有的订阅 observable 中
- abap - 完全拒绝abap中的GET事件
- r - 如何查找一个向量中不在另一个向量中的元素(不使用 setdiff)
- z3 - 如何利用 Z3 SMT 求解器解决 ILP 问题