У меня есть класс, который проверяет, существует ли файл или нет, и создает объект файла, если файл существует, иначе ловит исключение, если файл не существует или существуют проблемы с разрешениями.
import os
import sys
import pandas
import yaml
class FileChange():
def __init__(self, file_name='manifile.yml'):
''' to create a factfile object '''
self.file_name = file_name
self.checkfile()
def checkfile(self):
'''to check if the factfile exists or not '''
try:
with open(self.file_name, 'r') as yml_file:
self.yml_dict = yaml.safe_load(yml_file)
except (IOError,FileNotFoundError):
print('Unable to open file or File does not exist')
if __name__ == "__main__":
if len(sys.argv) == 1:
print("Run the script with the YML fact file name you would like to edit")
elif len(sys.argv) > 1:
FILE_NAME = sys.argv[1]
print(FILE_NAME)
F = FileChange(FILE_NAME)
Я хотел бы создать объект класса, используя этот класс, и перехватить / обработать исключение, выданное в объекте, если файл не существует.
Я использую это двумя способами.
1. Создавая объект из импорта файлового обмена * F = FileChange ('dummyfile.yml'), где dummyfile не существует и, следовательно, он должен показать мне сообщениеи выход.
Я также запускаю это как утилиту сценария py (cmd> filechange.py dummyfile.yml) и передаю имя файла в качестве параметра. Даже тогда имя файла я даю неправильно. Это должно дать мне исключение и выход. Основной код для этого файла добавлен