问题描述
我想输入这样一个代码,以便它显示用户指示的行的内容(以从键盘读取的数字形式)。超出列表范围(行数)时处理异常。 代码如下:
import linecache
try:
number = int(input("Line: "))
lines = linecache.getline("text.txt",number)
print(lines)
except:
print("no such line was found")
程序正确读取了该行的内容,但是当我想处理异常时,选择 text.txt 范围之外的一行,例如不存在的第 250 行,没有显示“没有找到这样的行”异常,我该如何改进?
提前致谢!!!
解决方法
linecache.getline("test.txt",number)
在行号不存在的情况下不产生异常,只返回''
。
所以你可以这样做:
import linecache
number = int(input("Line: "))
lines = linecache.getline("text.txt",number)
print(lines)
if lines == '':
print("no such line was found")