У меня есть следующий рабочий каталог: /Users/jordan/Coding/Employer/code_base
, и файл, для которого я хочу получить абсолютный путь, расположен в /Users/jordan/Coding/Employer/code_base/framework/GTC/tests/day_document.json
.
У меня есть тесты в файле /Users/jordan/Coding/Employer/code_base/framework/GTC/tests/test.py
.
В настоящее время, когда я использую os.path.join(os.getcwd(), os.path.relpath('day_document.json')
, я получаю /Users/jordan/Coding/Employer/code_base/day_document.json
. Я хочу получить правильный путь к файлу day_document.json
, чтобы тесты могли правильно работать в CI. Код в настоящее время выполняется в тестовом файле, расположенном по адресу /Users/jordan/Coding/Employer/code_base/framework/GTC/tests/test.py
.
Я уже пробовал os.path.relpath('day_document.json')
и os.path.abspath('day_document.json')
в os.join
, и оба возвращают /Users/jordan/Coding/Employer/code_base/day_document.json
. Я также много гуглил, но, похоже, не могу найти ничего, где люди получают правильный ответ. Когда я использую os.path.join(os.getcwd(), 'framework/GTC/tests/day_document.json')
, я получаю правильное поведение, но я не хочу жестко кодировать пути к файлам.
Это работает:
day_document_file_location = os.path.join(os.getcwd(), 'framework/GTC/tests/day_document.json')
with open(day_document_file_location, 'r') as day_doc_json:
day_doc_endpoint._content = day_doc_json.read()
Но я не понимаю, почему это не так:
day_document_file_location = os.path.join(os.getcwd(), os.path.relpath('day_document.json'))
with open(day_document_file_location, 'r') as day_doc_json:
day_doc_endpoint._content = day_doc_json.read()
Я должен отметить, что последний код работает, когда я запускаю его из расположения файла, а не из рабочего каталога.
Я хочу найти способ не жестко кодировать путь к файлу и иметь возможность получить /Users/jordan/Coding/Employer/code_base/framework/GTC/tests/day_document.json
из рабочего каталога.