понедельник, 14 июня 2010 г.

Пути к файлам


# добавление папки в которой искать модули
sys.path.append(path)
# определение директории файла
os.path.dirname(path)
# смена рабочей директории
os.chdir(directory)
# переменная, в которой хранится путь до текущего скрипта
__file__
# делаем, чтобы все относительные пути
# вычислялись относительно пути до скрипта
os.chdir(os.path.dirname(__file__))

3 комментария:

  1. Для подавления папки в sys.path обычно используется insert, а не append, так как требуется, чтобы поиск модулей начинался не с дефолтных папок.

    __file__ -- имя файла текущего модуля. Разница важна.

    Делать os.chdir надо в крайнем случае и обязательно где-нить явно в начале скрипта -- иначе могут быть феерические глюки при попытке использовать модуль, делающий это. А если таких модуля два? "Явное лучше неявно" (с) Zen Python

    http://asvetlov.blogspot.com/2010/05/blog-post.html
    http://asvetlov.blogspot.com/2010/05/2.html
    http://asvetlov.blogspot.com/2010/05/3.html

    ОтветитьУдалить
  2. Учту, но лично мне так и надо.

    ОтветитьУдалить
  3. > os.path.dirname(__file__)

    Лучше использовать os.path.dirname(os.path.realpath(__file__)) иначе могут быть проблемы. Я сейчас точный пример не припомню. Без realpath у меня кажется глючил код под mod_wsgi.

    ОтветитьУдалить