gpt4 book ai didi

python - 如何修改此脚本以搜索多个关键字?

转载 作者:行者123 更新时间:2023-11-28 17:12:48 27 4
gpt4 key购买 nike

我正在尝试修改脚本。这对我来说很困难,所以我来寻求帮助。该脚本应该从一些 .out 文件中提取数据,然后将它们写入 .txt 文件中。问题是我要查找两个不同的关键字。因此,我提供了脚本、我无法修改的内容以及两个输入文件示例。

#!/usr/bin/env python
# -*- coding: utf-8

#~ Data analysis
import glob, subprocess, shutil, os, math
from funciones import *
for namefile in glob.glob("*.mol2"):
lstmol2 = []
lstG=[]
os.chdir("some_directory")
searchprocess="grep -i -H 'CURRENT VALUE OF HEAT OF FORMATION =' *.out | sort -k 4 > firstfile.txt"
#~I need also to look for 'CURRENT BEST VALUE OF HEAT OF FORMATION ='
os.system(searchprocess)

fileout=open("results.txt","w")
filein=open("firstfile.txt", "r")
#~ write data in results.txt
fileout.write('\t %s \n' %(" HOF"))

for line in filein:
linediv=line.split()
HOF=float(linediv[8])

#~or [10] (for the keyword in need to add) but in both cases I need the float. I need both data of the keywords be included on this file.
lstG.append(HOF)
fileout.close()
filein.close()

输入数据,类型 1:

foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov
foofoofooofoofoofoofoofoo
CURRENT VALUE OF HEAT OF FORMATION = 1928
foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov

输入数据,类型 2:

foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov
foofoofooofoofoofoofoofoo
CURRENT BEST VALUE OF HEAT OF FORMATION = 1930
foofoofooofoofoofoofoofoo
foofoofooofoofoofoofoofoov

最佳答案

您应该更新您的 grep 命令以使用 ? 运算符查找可选词。使用 -E 标志启用扩展的正则表达式,这样您就不必转义正则表达式运算符。始终在您的模式周围使用单引号:

searchprocess="grep -E -i -H 'CURRENT( BEST)? VALUE OF HEAT OF FORMATION =' *.out | sort -k 4 > firstfile.txt"

@PrestonHager 是正确的,您应该将 linediv[8] 更改为 linediv[-1],因为在存在 BEST 的情况下,数字将在linediv[9] 位置,但在这两种情况下 linediv[-1] 都会给你想要的结果。

关于python - 如何修改此脚本以搜索多个关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46410972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com