从包含特定字符串的文件输出行

时间:2013-12-02 20:37:45

标签: python file python-3.x output

我是Python 3的初学者,我需要帮助解决问题。我要在包含字符串filename的文件target中输出每一行,前面是行号。

我试图测试我的想法,但IDLE不断抛出一条错误消息,说“没有这样的文件或目录:”即使我把歌词放入文件等等。

所以这就是我所拥有的:

def SearchFile (filename, target):
    filehandle = open ( filename, "r" )
    linenumber = 0
    while True :
        line = filehandle.readline ()
        if line == "":
            break
        linenumber += 1
        print ("%3i - %10i - %s" % (linenumber, target, line) )

那么,任何人都可以告诉我,我是以正确的方式解决这个问题还是犯了一个非常愚蠢的错误? 任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

正如@poke所说,“没有这样的文件或目录”意味着无法找到该文件。所以文件路径可能是错误的

除此之外,您还有另一个问题 - 您不会检查您打印的行中是否存在target

def searchFile(filename, target):
  with open(filename) as infile:
    for linenum, line in enumerate(infile):
      if target in line:
        print("%3i - %10i - %s" % (linenumber, target, line))