关于python:选择由字符串列表指定的文件的行

Selecting lines of a file specified by a list of strings

我有一些字符串的python列表。我还有一个文本文件(比如x),其中每一行都有一个单词标记,在标记之后还有一些浮点数,每一行用空格隔开。#每行中的浮点数是常量。

我的目标是只取列表中字符串对应的行,并将其保存为文本文件。如果列表中的任何字符串在文件x中不存在,那么它相应的浮动应该是随机的,介于-1和1之间。

玩具实例:

1
list = ['the','in','red']

文件X:

1
2
3
4
in 0.5 -0.1 -0.6            
good 0.2 0.4 -0.3            
on 0.4 0.6 0.6  
the 0.01 -0.05 0.5

在新的文本文件中我想要的内容:

1
2
3
the 0.01 -0.05 0.5  
in 0.5 -0.1 -0.6  
red -0.2 0.3 0.7

这个列表大约有400000个字符串,文本文件大约有300万行。请提出一个有效的方法。任何建议都会非常感谢,谢谢。


如果想在一个文件中查找,可以使用grep。

1
2
3
4
5
6
7
8
9
10
### let's create a file find_strings.py

import os

list = ['the','in','red']
for l in list :
   os.system('grep ' + str(l) + ' fileX.txt')

### after saving the file, run the below command in the console .
### $ python find_strings.py > list_found_strings.txt