我是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) )
那么,任何人都可以告诉我,我是以正确的方式解决这个问题还是犯了一个非常愚蠢的错误? 任何帮助将不胜感激!
答案 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))