2014-09-14 2 views
0

Я пишу проект python в eclipse с PyDev. И у меня проблема. Вот строительство проекта Here's construction of projectАбсолютный путь в python

В файле в breaking_cipher пакете, я получаю абсолютный путь «english_quadgrams.txt»

def __init__(self,filename="./dic/english_quadgrams.txt"): 
    self.filename = os.path.abspath(filename) 
    #self.filename = filename 
    print "self:", self.filename 
    self.dic,self.floor = generate_dic(self.filename) 

Этот вопрос, когда я импортировать проект для использования в comandline, он получил неправильный абс. dir shoudbe be "C: \ Users \ windy_000 \ workspace \ cipher \ dic \ english_quadgrams.txt", но отображение ошибки "C: \ Users \ windy_000 \ workspace \ dic \ english_quadgrams.txt". comandline Я сделал что-то не так?

ответ

1

Относительный путь относительно текущего рабочего каталога (os.getcwd()), а не относительно пути к файлу модуля/пакета.

Если вы хотите, чтобы путь к быть относительно moduel/пакетов, используйте __file__:

def __init__(self, filename="./dic/english_quadgrams.txt"): 
    self.filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), filename) 
    .... 
Смежные вопросы