首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个搜索词和输出文件

多个搜索词和输出文件
EN

Stack Overflow用户
提问于 2017-03-10 01:37:17
回答 2查看 37关注 0票数 0

我有一个正在搜索的文件,并将结果打印到一个文件中。我想知道是否有可能修改下面的代码以读取多个搜索词,例如打印任何包含"test“或"hello”(用户指定)的行,但让Python为每个搜索词创建一个新的输出文件?

例如,Ofile1将保存所有包含"test“的行,Ofile2将保存所有包含"hello”的行,依此类推

代码语言:javascript
复制
f = open('file3.txt') #input file

term = raw_input("What would you like to search for?") #takes an input to be searched

for line in f:
    if term in line:
        print (line) #print line of matched term

f.close() #close file

这有可能做到吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-10 02:35:44

基于@new user代码(改进了一些错误),你可以这样做:

代码语言:javascript
复制
terms = raw_input("What would you like to search for?")
terms = terms.split(" ")
for term in terms:
    f = open('text.txt')
    filename = '{}_output.txt'.format(term)
    o = open(filename, 'w')
    for line in f:
        if term in line:
            o.write(line)
    o.close()
    f.close()

也许你会认为,最好打开文件一次,并检查每一行的一些术语。根据词条的数量,它将或多或少地效率,如果你愿意,可以研究它使用真正的大文件来检查执行时间,并了解更多。

票数 1
EN

Stack Overflow用户

发布于 2017-03-10 01:47:01

用空格分割你的词条。然后使用for循环遍历所有术语。

例如:

代码语言:javascript
复制
terms = term.split(" ")
for t in terms:
    filename = t +"_output.txt"
    o = open(filename,'w')
    for line in f:
        if t in line:
            o.write(line) #print line of matched term
    o.close() 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42701939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档