python-3.x - 使用python提取文本
问题描述
我想从文本文件中提取特定部分。
例子——
PASSED: 1 GETFILE /root/test/misc/ptolemy/erase_flash.csv
PASSED: 4 MegaSCU -cfgclr -a0
PASSED: 8 MegaSCU -adphwdevice -read devicetype 5 bus 1 slaveaddr 82 start 0 sz 256 -f SK83100192.vpd -a0
PASSED: 28 VALUECHECK PACKAGE= 24.0.2-0013 in tty.log for 1 occurances!
从上面的文本中,我想提取 "GETFILE" 、 "MegaSCU" 、 "VALUECHECK" 作为我的输出。该文件很大,这些文本存储为列。
我正在寻找任何可以帮助我在文本中提取“PASSED:X”之后的单词的选项
请帮忙。
解决方案
方法1: 您可以保持简单并执行以下操作:
sample_txt = "PASSED: 1 GETFILE /root/test/misc/ptolemy/erase_flash.csv"
if sample_txt.startswith("PASSED"):
output = " ".join(sample_txt.split(" ")[2:]).strip()
output
将给出以下结果:
>>> GETFILE /root/test/misc/ptolemy/erase_flash.csv
方法 2:要考虑空格的变化,您可以使用该re
模块
import re
sample_txt = "PASSED: 28 VALUECHECK PACKAGE= 24.0.2-0013 in tty.log for 1 occurances!"
if sample_txt.startswith("PASSED"):
output = re.split("\\s+", sample_txt)[2]
>>> VALUECHECK
推荐阅读
- c# - 请帮我为以下 SQL 查询编写 LINQ 语句
- html - 如何使我的轮播标题响应?
- node.js - gRPC 允许两个客户端相互交谈
- crystal-reports - 如何在 Crystal Reports 的单个部分中过滤记录
- angular - Angular 6 和 .NET Core 2.1;浏览器不会跨端口共享 cookie
- ios - 如何在 TableView Cell 中停止重复图像
- docker - 如何在 jenkins ssh-slave 节点上运行的声明性管道中使用代理 docker?
- python - 防止将更改应用于原始数据框的好方法是什么?
- eggplant - 茄子:如何阅读带有 ' _ 等特殊字符的文本
- arrays - Hive:如何在数组类型的列中插入数据