python中的绝对路径

时间:2014-09-14 06:05:14

标签: python path pydev absolute-path

我正在使用PyDev在eclipse中编写一个python项目。 我正面临着一个问题。 这是项目的建设 Here's construction of project

在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中使用的项目时,它获得了错误的abs目录。 dir应该是“C:\ Users \ windy_000 \ workspace \ cipher \ dic \ english_quadgrams.txt”,但是 错误显示“C:\ Users \ windy_000 \ workspace \ dic \ english_quadgrams.txt”。 comandline 我做错了吗?

1 个答案:

答案 0 :(得分:1)

相对路径相对于当前工作目录(os.getcwd()),而不是相对于模块/包文件路径。

如果您希望路径相对于moduel / packages,请使用__file__

def __init__(self, filename="./dic/english_quadgrams.txt"):
    self.filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)
    ....