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 |