Skip to main content
 首页 » 编程设计

python之使用python过滤大文件,使用另一个的内容

2025年05月04日11qq78292959

我有一个 ~1GB 的数据条目文本文件和另一个我想用来过滤它们的名称列表。遍历每个条目的每个名称将非常慢。在 python 中执行此操作的最有效方法是什么?如果名称嵌入在条目中,是否可以使用哈希表?我可以利用名称部分始终放置的事实吗?

示例文件:

条目文件 -- 条目的每个部分由制表符分隔,直到名称

246   lalala   name="Jack";surname="Smith" 
1357   dedada   name="Mary";surname="White" 
123456  lala   name="Dan";surname="Brown" 
555555   lalala   name="Jack";surname="Joe" 

命名文件——每一个换行

Jack 
Dan 
Ryan 

期望的输出——只有名称文件中有名称的条目

246   lalala   name="Jack";surname="Smith" 
123456  lala   name="Dan";surname="Brown" 
555555   lalala   name="Jack";surname="Joe" 

请您参考如下方法:

您可以使用 set 数据结构来存储名称——它提供了高效的查找,但如果名称列表非常大,那么您可能会遇到内存问题。

总体思路是遍历所有名称,将它们添加到集合,然后检查数据文件中每一行的每个名称是否包含在集合中>。由于条目的格式没有变化,您应该能够使用简单的正则表达式提取名称。

如果您遇到名称 set 大小的问题,您可以从名称文件中读取 n 行并对每组名称重复该过程,除非你需要排序。