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'])