多个搜索词和输出文件

时间:2017-03-09 17:37:17

标签: python python-2.7

我有一个文件,我正在搜索并将结果打印到文件中。我想知道是否可以修改下面的代码来读取多个搜索字词,即打印任何有" test"或者"你好" (用户将指定)但是Python为每个搜索项创建一个新的输出文件?

即。 Ofile1将包含所有包含" test" Ofile2将包含所有包含" hello"等等

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

这可能吗?

2 个答案:

答案 0 :(得分:1)

基于@new用户代码(改进了一些错误),您可以执行以下操作:

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 :(得分:0)

按空格拆分您的字词。然后使用for循环遍历所有术语。

例如:

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()