如何将try块的文件指针访问到else块python中
在下面的程序中,我在try块之外声明了fptr,因为我想将文件关闭到else块中。但获取“AttributeError:‘NoneType’对象没有属性‘close’”。在这种情况下,如何关闭在try块中打开的文件如何将try块的文件指针访问到else块python中,python,Python,在下面的程序中,我在try块之外声明了fptr,因为我想将文件关闭到else块中。但获取“AttributeError:‘NoneType’对象没有属性‘close’”。在这种情况下,如何关闭在try块中打开的文件 def openFile(fileName): fptr = open(fileName,"r") fptr.close() def creatNewFile(): fileName = input("Enter file name : ") fpt
def openFile(fileName):
fptr = open(fileName,"r")
fptr.close()
def creatNewFile():
fileName = input("Enter file name : ")
fptr = open(fileName,"w")
fptr.close()
def main():
fileName = input("Enter file name with extension: ")
fptr = 0
try:
fptr = openFile(fileName)
except Exception as ex:
print("File is not exist")
choice = input("Do you want to create new file(Y/N)")
if((choice == 'N') or (choice == 'n')):
print("Exiting program");
exit(0)
elif((choice == 'Y' or choice == 'y')):
creatNewFile()
else :
print("Invalid choice, exiting program ")
else:
fptr.close();
main()
您没有在openFile()和createNewFile()中返回文件对象 试试这个:
def openFile(fileName):
fptr = open(fileName, "r")
return fptr
def creatNewFile():
fileName = input("Enter file name : ")
fptr = open(fileName, "w")
return fptr
def main():
fileName = input("Enter file name with extension: ")
fptr = 0
try:
fptr = openFile(fileName)
fptr.close()
except Exception as ex:
print("File is not exist")
choice = input("Do you want to create new file(Y/N)")
if ((choice == 'N') or (choice == 'n')):
print("Exiting program")
exit(0)
elif ((choice == 'Y' or choice == 'y')):
newfptr = creatNewFile()
newfptr.close()
else:
print("Invalid choice, exiting program ")
main()