Кажется, вопрос состоит в том, как получить абсолютный путь к файлу Unix в pythonВ нем указан относительный путь, но согласно коду относительный путь известен и равен ../input/input_file.txt
.Задача, о которой идет речь, как объяснено в вопросе, не требует этого и может быть легко выполнена с использованием относительных путей, которые известны в соответствии с предпосылкой (см. примечание ниже).Тем не менее, поскольку основной вопрос заключается в том, чтобы найти абсолютные пути и использовать их для решения этой проблемы, на это я и отвечу.
В вашем коде две проблемы.
os.path.dirname()
не возвращает абсолютный путь, который вы ищете.Вместо этого он возвращает компонент каталога данных путей, который в данном случае является пустой строкой (поскольку указанный вами путь содержит только файл (..
считается как файл). Вместо этого вы захотите использовать os.path.abspath()
. os.path.join()
игнорирует все элементы, которые предшествуют последнему абсолютному пути. Поскольку "/input/input_file.txt"
имеет форму абсолютного пути (начиная с /
), он игнорирует dirc
.предоставить относительные пути к этой функции без косой черты.
Всего:
import os
dirc = os.path.abspath("..")
filename = os.path.join(dirc, "input/input_file.txt")
f = open(filename, "r")
print([line for line in f])
f.close()
Обратите внимание , что вам не нужен абсолютный путь. Вы достигнетето же самое, выполнив:
f = open("../input/input_file.txt", "r")
print([line for line in f])
f.close()