【发布时间】:2021-12-08 15:42:24
【问题描述】:
我正在尝试从每行有 1 个整数的文件中打印整数,并打印它们的总和。一切似乎都工作正常,除非我输入了错误的文件名,循环回来,然后输入正确的文件名。该程序仍然输出正确的信息,但随后出现错误: “AttributeError:‘NoneType’对象没有属性‘readline’”。为什么会这样?
def main():
listnums = filetolist()
print(f'numbers in file: {listnums}')
print(f' sum of before mentioned numbers is: {sum(listnums)}')
# opens file
def openfile():
try:
file = open(input("what is the file named including the file extension?"), "r")
return file
except IOError:
tryagain = input("File could not be found \n" + "if you would like try again type 1 and press enter, to exit press enter")
if tryagain == "1":
main()
else:
exit()
# converts file to list
def filetolist():
file = openfile()
line = file.readline()
nums = []
linenumber = 1
while line != "":
nums += [verifyint(line, linenumber)]
line = file.readline()
linenumber += 1
file.close()
return nums
# verifies number is an int
def verifyint(num, linenumber):
try:
numint = int(num)
return numint
except ValueError:
print(f'Invalid value on line #{linenumber}')
exit()
main()
【问题讨论】:
标签: python readline attributeerror try-except