Диагностика проблем потока: продолжение
Если Вы очень осторожный программист, Вы можете почувствовать необходимость использовать последовательность утверждений, аналогичную приведенной в редакторе:
К счастью, есть функция, которая может значительно упростить код обработки ошибок. Ее имя - strerror()
, она находится в модуле os
и принимает только один аргумент - номер ошибки.
Ее роль проста: Вы даете номер ошибки и получаете строку, описывающую значение ошибки.
Примечание. Если Вы передадите несуществующий код ошибки (число, которое не связано с какой-либо действительной ошибкой), функция вызовет исключение ValueError.
Теперь мы можем упростить наш код следующим образом:
from os import strerror
try:
s = open("c:/users/user/Desktop/file.txt", "rt")
# Actual processing goes here.
s.close()
except Exception as exc:
print("The file could not be opened:", strerror(exc.errno))
Хорошо. Теперь пришло время разобраться с текстовыми файлами и ознакомиться с некоторыми основными приемами, которые Вы можете использовать для их обработки.
Code
import errnotry:
s = open("c:/users/user/Desktop/file.txt", "rt")
# Actual processing goes here.
s.close()
except Exception as exc:
if exc.errno == errno.ENOENT:
print("The file doesn't exist.")
elif exc.errno == errno.EMFILE:
print("You've opened too many files.")
else:
print("The error number is:", exc.errno)