Я отправляю ответ сам, потому что, хотя ответы решают проблему, они не дают правильной причины, почему их код работает, а мой нет.
Существенная проблема с моим кодом состоит в том, что строка
path_to_file = os.path.join(script_path, '/test', 'file.xml')
# Expected value of path_to_file:
# /path/to/script/test/file.xml
# Output of print(path_to_file):
# /test/file.xml
содержит абсолютный путь /test
вместо относительного пути ./test
или, как указывалось ранее, лучший способ test
.
В результате с /test
результирующий путь не будет содержать содержимое script_path
.
Предыдущие ответы могут помочь в случаях, когда вы переходите на один каталог ниже, но не охватывают такие случаи, как
path_to_file = os.path.join(script_path, 'test/subdir', 'file.xml')
Где вы можете найти /
полезным. Я думаю, что можно доверять os.path.join()
, чтобы заботиться о тех каталогах, специфичных для платформы. Пожалуйста, дайте мне знать, если вы не согласны со мной в этом.