Сначала давайте разберемся, что делает каждая функция:
Возвращает нормализованную абсолютизированную версию пути пути.
Выиспользуется:
os.path.abspath(sys.argv[0])
Пример:
>>> print(os.path.abspath(sys.argv[0]))
/usr/bin/ipython
Эквивалент Pathlib:
>>> pathlib.Path(sys.argv[0]).resolve()
/usr/bin/ipython
Возвратыимя каталога path
.
Вы использовали:
os.path.dirname(os.path.abspath(sys.argv[0]))
Пример:
>>> os.path.dirname('/usr/bin/ipython')
/usr/bin
Эквивалент Pathlib:
import pathlib
path = pathlib.Path(sys.argv[0])
modpath = path.parent
Объединяет один или несколько компонентов пути.
Вы использовали:
os.path.join(modpath, '../../datas/orcl-1995-2014.txt')
Пример:
>>> print(os.path.join('/etc', 'dir1', '..', 'dir2', 'dir3/dir4'))
/etc/dir1/../dir2/dir3/dir4
Эквивалент Pathlib:
datapath = modpath.parent.parent / 'datas' / 'orcl-1995-2014.txt'
Теперь давайте следуем по коду:
- Resolve
sys.argv[0]
- Какой путь к вашему скрипту Python.Допустим, это /usr/bin/python
. - Применить
os.path.abspath
к /usr/bin/python
- Вы можете попробовать это в интерпретаторе.Результат - /usr/bin/python
, поскольку это уже абсолютный путь. - Применить
os.path.dirname
к результату (/usr/bin/python
).Результатом является имя каталога usr/bin/python', which is
/ usr / bin . Save it in
modpath`. - Объединение modpath (
/usr/bin/
) с ../../datas/orcl-1995-2014.txt
с использованием os.path.join
- что приводит к /usr/bin/../../datas/orcl-1995-2014.txt
.Сохранить на datapath
.