我正在寻找在文本行中搜索ID的方法。一旦找到这个ID,我想把整行文字添加到一个列表中
这就是我目前所拥有的
import subprocess
import re
bash = ("curl************************>> ~/Desktop/output.txt")
output = subprocess.check_output([bash], shell=True, stderr=subprocess.STDOUT)
with open('/******/output.txt', 'r') as myfile:
everything = myfile.read().replace('\n', '')
brokendownbyline = re.findall(r'{\"EGG\"(.*?)SHELL',str(everything))
for i in brokendownbyline:
print(i)
此代码打印如下内容:
"addjaid fja fahf ioah fa hdfh ahf 1234 asl kjas kdjf l akdjf"
"alkgad fganf daohdg o aunf g aoh oahf 9876 asl kdfna lk jfds"
"kl asdjfk ajsdfja sfiha flka jlkd jfakjfda ijf 4567 asdkf"
"asdkjfnajs dhfuioahfj a bnfgiuabf 3456asdkl fafaadhaa"
"ajsdfjaod ifjoa isdjfoia jdfoia hdgo iaf4637ads jfajis"
同样,每一行都有一个ID。我只是在找一个身份证。一旦找到ID#,我希望这一行或几行文本被添加到一个列表中,其他所有内容都可以忽略
我不知道你为什么用bash来做这个。你也没有很好地解释你的确切目标,但是根据我的解释,对于给定的ID,比如说34,你想要找到包含ID 34的所有行,并将整行添加到一个列表中
这很容易实现,如:
所以这里的其他解决方案建议使用
in
关键字,这会很快,但是您不能传递一个列表来与字符串进行比较相反,我将使用regex进行匹配,然后使用set intersection来比较两者
只打印匹配的行:
这是对我有效的最终解决方案
相关问题 更多 >
编程相关推荐