Форум сайта python.su
0
Приветствую.
Собственно сабж. Можете отнести вопрос к разряду праздного интереса, ибо результат выполнения первого и второго действия идентичны. Если я ошибаюсь, прошу поправить.
В чем же разница и почему я часто в коде вижу os.path.abspath(os.path.dirname('__file__'))
когда os.getcwd() выглядит эстетичнее?
Офлайн
253
Это разные вещи. Первое директория в которой лежит скрипт, а второе текущая директроия.
Отредактировано doza_and (Дек. 1, 2012 23:11:36)
Офлайн
0
Я понимаю, что второе - это текущая рабочая директория (Current Workin Directory). Но мне не удалось добиться того, чтобы эти две вещи стали разными.
cd /home/user/
python
>>> import os >>> os.path.abspath(os.path.dirname('__file__')) '/home/user/' >>> os.getcwd() '/home/user/' >>> os.chdir('/home/user/python/') >>> os.path.abspath(os.path.dirname('__file__')) '/home/user/python/' >>> os.getcwd() '/home/user/python/'
Отредактировано Kamo (Дек. 2, 2012 17:22:29)
Офлайн
2
os.path.dirname('__file__') возвращает пустую строку, т.к. не знает что такое __file__. abspath от пустоты дает текущий cwd
Офлайн
0
Ну вот, другое дело. Следовательно получаем, что разницы между os.path.abspath(os.path.dirname('__file__')) и os.getcwd() нет никакой.
Офлайн
173
KamoРечь точно о строке ‘__file__’, а не о переменной __file__? Разница все-таки есть.
Следовательно получаем, что разницы между os.path.abspath(os.path.dirname('__file__')) и os.getcwd() нет никакой.
os.path.abspath(os.path.dirname(__file__))
Офлайн
253
import os print os.path.abspath(os.path.dirname(__file__)) print os.getcwd() os.chdir("..") print os.path.abspath(os.path.dirname(__file__)) print os.getcwd() c:\work\fem c:\work\fem c:\work\fem c:\work
Офлайн
0
reclosedev
Речь точно о строке ‘__file__’, а не о переменной __file__? Разницавсе-таки есть.
Отредактировано Kamo (Дек. 2, 2012 20:56:58)
Офлайн
19
Kamo
NameError: name ‘__file__’ is not defined
Отредактировано cutwater (Дек. 2, 2012 22:16:05)
Офлайн