我有一个文件,我正在搜索并将结果打印到文件中。我想知道是否可以修改下面的代码来读取多个搜索字词,即打印任何有" 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
这可能吗?
答案 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()