Leyendo archivos de recursos en python

Soy un desarrollador de Java convertido en desarrollador de python. Cómo leer los archivos de recursos de classpath en python

Aquí está mi estructura de directorios

. ├── resources │  ├── #test_schema.xml# │  ├── create_confd_serialized_objects.sql │  ├── create_notifications.txt │  ├── create_notifications2.txt │  ├── credentials.json │  ├── delete_notifications.txt │  ├── ngena-sa.xml │  ├── ngena-sa.yang │  ├── ngena-sa.yang~ │  ├── ngena-sa_v0.6.uml │  ├── notification.txt │  ├── notification.txt~ │  ├── requirements.txt │  ├── test_schema.xml │  └── test_schema.xml~ ├── src │  ├── ConfdAlertHandler.py │  ├── ConfdAlertHandler.pyc │  ├── ConfdAlertHandler.py~ │  ├── DataBaseManager.py │  ├── DataBaseManager.pyc │  ├── DataBaseManager.py~ │  ├── OUTPUT │  ├── Record.py │  ├── Record.py~ │  ├── __init__.py │  ├── __pycache__ │  │  ├── ConfdAlertHandler.cpython-37.pyc │  │  ├── DataBaseManager.cpython-37.pyc │  │  └── socket.cpython-37.pyc │  ├── listener.py │  ├── ngena_sa_create.sql │  ├── ngena_sa_create.sql~ │  ├── output.xml │  ├── server.py │  ├── server.py~ │  ├── watcher.py │  └── watcher.py~ 

Actualmente estamos cargando el archivo de la siguiente manera. ¿Existe una mejor manera o la mejor práctica para leer los archivos de recursos?

Record.py

 class Record: def __init__(self, yang_path=None, json_path=None, xml_path=None,jsonData=None, xmlStr=None): self.xmlStr = xmlStr self.yang_path = yang_path self.xml_path = xml_path self.json_path = json_path self.tables = [] self.module_name = '' self.connections = [] self.table = None self.db_credentials = json.loads(open("../resources/credentials.json").read()) self.db_manager = DataBaseManager(self.db_credentials['username'], self.db_credentials['password'], self.db_credentials['port']) 

Pero, estoy recibiendo el error de abajo

 python src/Record.py resources/ngena-sa.yang resources/ngena-sa.yang Traceback (most recent call last): File "src/Record.py", line 242, in  x = Record(args.yang_path) File "src/Record.py", line 39, in __init__ self.db_credentials = json.loads(open("../resources/credentials.json").read()) FileNotFoundError: [Errno 2] No such file or directory: '../resources/credentials.json' 

Pude leer el json usando el siguiente

 def __init__(self, yang_path=None, json_path=None, xml_path=None,jsonData=None, xmlStr=None): self.xmlStr = xmlStr self.yang_path = yang_path self.xml_path = xml_path self.json_path = json_path self.tables = [] self.module_name = '' self.connections = [] self.table = None abs_path = sys.path[0] base_name = os.path.dirname(abs_path) resources_path = os.path.join(base_name, "resources/credentials.json") self.db_credentials = json.loads(open(resources_path).read()) self.db_manager = DataBaseManager(self.db_credentials['username'], self.db_credentials['password'], self.db_credentials['port'])