Я пытаюсь напечатать путь к файлу. Я хочу, чтобы полный путь из текущего рабочего каталога в файл.Получение пути к файлу класса, начинающегося с текущего рабочего каталога
Я использую модуль inspect
, чтобы найти путь к моему файлу. Однако это даст мне полный путь, который не то, что я ищу.
import inspect
class Foo:
def __init__(self):
print(inspect.getfile(self.__class__))
Теперь для самого файла я могу использовать os.path.basename
. Но это даст мне только имя файла, которое также не то, что я хочу.
import inspect
import os
class Foo:
def __init__(self):
path = inspect.getfile(self.__class__)
filename = os.path.basename(path)
print(path)
print(filename)
Было бы относительно легко использовать path
в сочетании с os.getcwd()
, чтобы получить путь, который я ищу. Это даст мне результат, который я ищу.
import inspect
import os
class Foo:
def __init__(self):
path = inspect.getfile(self.__class__)
cwd = os.getcwd()
print(path[len(cwd):])
Мне интересно, есть ли лучший/более простой способ сделать это?
Рассматривали вы [ 'os.path.relpath'] (https://docs.python.org/3/library/os.path.html#os.path.relpath)? – jonrsharpe
@ jonrsharpe Нет, я этого не делал. Это действительно лучше, спасибо. – RemcoW