文件被传递到函数中,目标是打印行,但它只是多次打印第一行。
def printRecord(rec1):
#read reads in a single record from the first logfile, prints it, and exits
s = Scanner(rec1)
line = s.readline()
print(line)
s.close()
return line
def printRecords(rec1):
#loops over all records in the first log file, reading in a single record and printing it before reading in the next record
lines = ""
s = Scanner(rec1)
for i in range(0, len(rec1), 1):
lines += printRecord(rec1)
return lines
答案 0 :(得分:0)
我认为printRecord(rec1)
只是读取文件的第一行。我使用open()
而不是Scanner()
时可能会出错。我不知道Scanner
是否重要,但我会做出类似的事情:
def printRecords(rec1):
f = open(rec1,'r')
lines = f.read()
return lines
答案 1 :(得分:0)
您的问题是当您关闭并重新打开扫描程序中的日志文件时,您将从日志文件的开头开始。
相反,取消第一个函数,只读取for循环中的行:
for i in range(0, len(rec1), 1):
line = s.readline()
print(line)
lines += line
return lines
修改强>
通过外交,如果你想保留两种方法,将Scanner作为参数传递给函数调用,它将跟踪它的位置。因此,而不是在printRecord中创建一个新的Scanner,而不是:
def printRecord(rec1, s):
其中s是您在printRecords中创建的扫描仪