2011-11-15 215 views
-3

我试图引用其中出现多次关键字的行,我需要能够引用while循环中的每一行。此外,我需要大胆的关键词在行中。谢谢!在while循环中为每个循环分配新变量

def main(): 
    print("The Great Search Engine, by Eric Santos") 
    # input from user name of database file 
    dname = input("Enter name of database file: ") 
    # input from user seach term to look for 
    term = input("Enter keyword to search for: ") 
    # open html file for writing 
    outfile = open("mypage.html", "w") 

    # open database file for reading 
    infile = open(dname,"r") 
    # for each line in the file: 
    hits=0 
    i = 0 
    for line in infile: 
     listword = line.split() 
     for word in listword: 
      if term == word: 
       print(word) 
       print(line) 
       # read in URL line 
       url = infile.readline() 
       print(url) 
       hits=hits+1 
       i=i+1 

    if hits==1: 
     print ("Keyword", term, "found", hits,"times") 
     print("<html>", file=outfile) 
     print("<head><title>Search Findings</title></head>", file=outfile) 
     print("<body>", file=outfile) 
     print('<h2><p align=center>Search for "', term, '"</h2>"', file=outfile) 
     print("<p align=center>", file=outfile) 
     print("<table border>", file=outfile) 
     print("<tr><th> Hits <th>URL</tr>", file=outfile) 
     print("<html>", file=outfile) 
     print("<tr><td>",line,"<td><a href=", url,"> ",url,"</a></tr>", file=outfile) 
     print("</table>", file=outfile) 
     print("</body>", file=outfile) 
     print("</html>", file=outfile) 

    if hits ==2: 
     print ("Keyword", term, "found", hits,"times") 
     print("<html>", file=outfile) 
     print("<head><title>Search Findings</title></head>", file=outfile) 
     print("<body>", file=outfile) 
     print('<h2><p align=center>Search for "', term, '"</h2>"', file=outfile) 
     print("<p align=center>", file=outfile) 
     print("<table border>", file=outfile) 
     print("<tr><th> Hits <th>URL</tr>", file=outfile) 
     print("<html>", file=outfile) 
     print("<tr><td>search <b>engine</b><td><a href=", url,"> ",url,"</a></tr>", file=outfile) 
     print("<tr><td>search <b>engine</b><td><a href=", url,"> ",url,"</a></tr>", file=outfile) 
     print("</table>", file=outfile) 
     print("</body>", file=outfile) 
     print("</html>", file=outfile) 

     outfile.close() 

    if hits == 0: 
     print("Keyword", term,"not found") 

     # use find to see if search term is in line 
     # if find is successful 
      # add one to the hits 
      # output the file to the html file 
    # if after count still zero 
     # show to shell no hits 
     # output to html file "no hits" 
    # else 
     # output to shell how many hits 
    infile.close() 

main() 

# write out the end of html to the html file 
# close file 
+0

“while”循环在哪里? –

+0

我没有python 3方便,所以我不能运行你的代码,但是你的问题是什么?代码是否正在运行?几乎跑?产生追踪错误或? –

回答

0

你说你想引用while循环中的每一行......但是你的程序中没有while循环。

而且什么是你的变量hits的目的和可变i(为什么变量?)

0

我做了一些修改你的代码。我使用的Python 2.6,所以我改变输入和的raw_input从未来进口print_function

我再改做readlines方法添加()来读取完整的文件到线

我的“分裂”,使你不会分裂每个角色。

我不知道你在想什么位置:URL = infile.readline()

你的输出指示要打印一个网址,但你必须输入的文本文件,并且不加起来到一个网址,所以想想你真的想在那里。

看一看,也许改善你的问题。

from __future__ import print_function 

def main(): 
    print("The Great Search Engine, by Eric Santos") 
    # input from user name of database file 
    dname = raw_input("Enter name of database file: ") 
    # input from user seach term to look for 
    term = raw_input("Enter keyword to search for: ") 
    # open html file for writing 
    outfile = open("mypage.html", "w") 

    # open database file for reading 
    infile = open(dname,"r") 
    # for each line in the file: 
    hits=0 
    i = 0 
    for line in infile.readlines(): 
    print(line) 
    listword = line.split(" ") 
    print(listword) 
    for word in listword: 
     if term == word: 
      print(word) 
      print(line) 
      # read in URL line 
      url = infile.readline() 
      print(url) 
      hits=hits+1 
      i=i+1