Python中文
首页
教程
问答
标签
搜索
登录
注册
使用python在txt文件中查找字符串的最佳方法是什么?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>使用python在txt文件中查找字符串必须有多种方法, 但最好的办法是什么?(对于速度,对于资源…)</p> <p>我的第一个想法如下</p> <pre><code>file = open('/home/socfw/src/edl/outbound_monthly.txt') inputIP = '127.0.0.1' while (1): line = file.readline() if inputIP in line: print("ok") break </code></pre> <p>但是,正确使用web服务太慢了(它实际上是我的web服务的后端逻辑) txt文件如下所示</p> <p>test.txt(IPV4地址在这里,它们的数量几乎为60k)</p> <pre><code>x.x.x.x x.x.x.x . . . . </code></pre> <p>我的源代码会导致100%的CPU占用数分钟,所以我想找到另一种方法。 有什么好的解决办法吗? 提前谢谢</p> <hr/> <p>谢谢你回答我。 我改变了我的来源如下</p> <pre><code>with open('/home/socfw/src/edl/outbound_monthly.txt') as outMonIPs: ip = set(line.strip() for line in outMonIPs) inputIP = '111.90.150.249' #while True: if inputIP in ip: print("ok") # break else: print("no") # break </code></pre> <p>我还有一个问题,我应该用<code>loop</code>来完成这项工作吗? 我认为,当我将整个文件保存在内存中时,不再需要循环</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果您必须使用文本文件,您可以尝试将整个文件读入内存,而不是逐行搜索以加快速度。(如果将所有文件读入内存,则不再需要循环)</p> <p>您可以尝试使用grep或find,而不是编写python脚本来进行搜索</p> <>你应该考虑把你的数据放到一个数据库中并查询它来找到匹配。这种方法的资源效率应该更高,速度也应该更快,因为数据库可以使用索引,而不必将整个数据集读入内存来查找匹配项。 如果您的应用程序足够简单,您可能可以使用sqlite</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
1 回答
我想从用户导入值,为此
3 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
3 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
7 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
6 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
8 回答
我想从第一个空lin开始解析文本文件
7 回答
我想从简历、简历中提取特定部分
10 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
5 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
3 回答
我想从网上搜集一些关于抵押贷款的数据
10 回答
我想从网站上删除电子邮件地址
4 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
2 回答
我想从网站中提取数据,然后将其显示在我的网页上
4 回答
我想从网页上提取统计数据。
9 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
1 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
8 回答
我想从课堂上打印字典里的键
4 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
4 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
6 回答