gpt4 book ai didi

python - 在文件中搜索字符串的有效方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:53 25 4
gpt4 key购买 nike

我有 2 个文件 'example' 和 'inp' 如下:

文件内容示例:

hi      wert    123

jui fgrt 345

blabla dfr 233

文件输入内容:

jui
hi

我需要获取“example”每一行的第一列,如果该字符串存在于文件“inp”中,那么我想将整行“example”写入另一个文件 out.txt这是我写的代码:

f=file('example')
f1=file('inp')

for l in f.readlines():
s=l.split()
for p in f1.readlines():
if s[0] in p:
print l >> 'out.txt'

我无法获得预期的结果。而且,由于文件示例实际上有 200000 个条目,我认为这种程序需要太多时间。有什么方法可以让我正确快速地完成我的任务。非常感谢帮助。谢谢你

最佳答案

这个呢?它首先加载 inp 文件,然后遍历示例文件,仅打印以从 inp 读取的单词列表中包含的单词开头的行。

with open('inp') as inpf:
lines = [l.strip() for l in inpf]

with open('example') as exf, open('out.txt', 'w') as outf:
for l in exf:
if l.split(' ', 1)[0] in lines:
print >>outf, l

您还可以使用 set 来加快搜索速度。在集合中搜索的平均成本为 O(1)。只需将第一个 with 语句更改为:

with open('inp') as inpf:
lines = set([l.strip() for l in inpf])

如果您使用的是 Python 3,则使用 print 函数代替“旧”语句:

print(l, file=outf)

关于python - 在文件中搜索字符串的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com