使用 python 提取文本
Extract text using 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" 之后的单词的任何选项
请帮忙。
我假设 X 总是一个整数。
因此您可以删除字符串的开头 "PASSED:" 然后读取数字。然后提取直到下一个space。
方法一:
您可以保持简单并执行以下操作:
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
我想从文本文件中提取特定部分。
示例 -
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" 之后的单词的任何选项
请帮忙。
我假设 X 总是一个整数。
因此您可以删除字符串的开头 "PASSED:" 然后读取数字。然后提取直到下一个space。
方法一: 您可以保持简单并执行以下操作:
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