使用Python进行搜索和输出

使用Python进行搜索和输出,python,io,Python,Io,帮帮大家 150个文本文件的列表 One text file with query texts: ( SRR1005851 SRR1299210 SRR1021605 SRR1299782 SRR1299369 SRR1006158 ...etc). 我想从150个文本文件列表中搜索每个查询文本。 例如,如果在至少120个文件中找到SRR1005851,则SRR1005851将附加到输出文件中。 搜索将迭

帮帮大家

150个文本文件的列表

One text file with query texts: (  
    SRR1005851  
    SRR1299210  
    SRR1021605  
    SRR1299782  
    SRR1299369  
    SRR1006158  
    ...etc).   
我想从150个文本文件列表中搜索每个查询文本。 例如,如果在至少120个文件中找到SRR1005851,则SRR1005851将附加到输出文件中。 搜索将迭代所有搜索查询文本并遍历所有150个文件


小结:我正在查找150个文件中至少90%的查询文本

我想我不完全理解你的问题。发布您的代码和示例文件将非常有用

此代码将统计所有文件中的所有条目,然后它将标识每个文件中唯一的条目。之后,它将统计每个条目在每个文件中的出现次数。然后,它将只选择至少在90%的所有文件中出现的条目

此外,这段代码本来可以更短,但为了可读性起见,我创建了许多变量,它们的名称很长,很有意义

请阅读评论

导入操作系统 从收款进口柜台 从系统导入argv 调整切割点 切割百分比=0.9 在这里,我们将保存每个文件的条目,以便以后对它们求和 文件\u dict={} 总文件数似乎是您需要对照计数进行检查的数字 文件总数=0; 原始总条目,甚至重复条目 项目总数=0; 唯一_项=0; 第一个参数是脚本名,所以第二个参数是要搜索的文件夹 search_dir=argv[1] 列出搜索目录下的所有内容-理想情况下仅列出您的输入文件 如果同一文件夹中有某些内容,请检查如何仅读取特定的文件类型 files\u list=os.listdirsearch\u dir 文件总数=文件列表 打印“文件读取:” 迭代给定文件夹中找到的每个文件 对于文件列表中的文件名: 打印+文件名 file\u object=opensearch\u dir+文件名'r' 返回带“换行符”的条目列表 file\u entries=maplambda it:it.strip\r\n,file\u object.readlines 得把他们都数一数 总计\u条目数+=lenfile\u条目数 集合不允许重复条目 条目\u集合=设置文件\u条目 从集合中创建dict,将每个键的值设置为1。 file\u entries\u dict=dict.fromkeysentries\u set,1 条目dict现在使用的是不同的,每个键都将保留一个计数器 文件目录[文件名称]=反文件目录 文件_object.close; 打印\n\n所有项目计数:+strtotal\u项目 现在我们创建一个dict,它将保存每个唯一键的计数,这样我们就可以对从文件读取的所有dict求和 条目_dict=计数器{} 对于file_dict_key,files_dict.items中的file_dict_值: 打印格式文件目录键+-+格式文件目录值 条目\u dict+=文件\u dict\u值 打印\n唯一条目计数:+strlenteries\u dict.keys 打印条目 90%来自你的问题 剪切线=总文件数*剪切百分比 打印\n至少需要+斜线+以下列出的条目 output dict是最终dict,我们在其中放入90%以上的文件中存在的条目。 输出_dict={} 这是Python3-检查您的版本,因为旧版本可能会使用iteritems而不是下面一行中的项 对于条目,在条目中计数\u dict.items: 如果计数>切割线: 输出指令[输入]=计数; 打印输出命令
那么,你试过什么?向我们展示你的代码,向我们展示你的困境,我们可能会提供帮助。到目前为止你做了什么?在实际为此编写代码时,您面临的具体问题是什么?我已经编写了以下代码。我有一个什么是必需的想法,但我不知道如何使它工作。请帮助我,使用openexpressed.txt的guys count=0,结果是:使用openC:/Users/ifeanyi/Desktop/modify/Bmori\u id.txt,ras查询文件:查询文件中的匹配项:glob.glob*.txt中的名称:使用openname,r作为比较:对于比较中的行:如果行中的匹配:count=+1 result.appendCount非常感谢,这正是我想要的。我只是对文件做了一些调整,效果非常好。非常感谢兄弟。谢谢stackoverflow…太棒了,兄弟,如果你愿意,请标记答案并投票。