2012-04-26 5 views
1

Под структурой Linux, я заметил, что следующие работы:Python импорт из другого каталога с помощью «~» символ

import sys 
sys.path.append("/home/username/fullpathname/") 
import my_module 

однако нижеперечисленный не

import sys 
sys.path.append("~/fullpathname") 
import my_module 

находится там способ использования оператора «~»? Я не понимаю, почему python хочет полный каталог. Спасибо!

+2

'~' расширяется оболочкой. Python нуждается в реальном пути, будь то относительный или абсолютный. – Cameron

+0

См. Принятый ответ http://stackoverflow.com/questions/4906977/python-environment-variables – dwerner

ответ

7

Вы можете использовать os.path.expanduser:

import sys, os 
sys.path.append(os.path.expanduser("~/fullpathname")) 
import mymodule 
+0

Работал отлично! Благодаря! Любая идея, почему это не поведение по умолчанию? – user1357015

+0

~ означает только «домашний каталог» в системах Unix. Что делать, если вы были в Windows? – Venge

+0

Просто добавьте, даже если ~ пользователь не имеет никакого значения для файловой системы Windows, 'os.path.expanduser' должен по-прежнему работать в Windows ... – mgilson

Смежные вопросы