2015-04-23 53 views
3

我有一個我自己構建的python模塊,它位於/usr/local/lib/python3.4/site-packages/my_module1。在模塊我有這樣的:從模塊被調用的地方獲取當前路徑

class Class1(object); 
    def __init__(self, file_name): 
    self.file_name = file_name # how can I get the full path of file_name? 

如何獲得充分的file_name?也就是說,如果它只是一個沒有路徑的文件名,那麼追加當前文件夾,該模塊被稱爲。否則,將文件名稱視爲完整路徑。

# /users/me/my_test.py 
    from module1 import Class1 
    c = Class1('my_file1.txt') # it should become /users/me/my_file1.txt 
    c1 = Class1('/some_other_path/my_file1.txt') # it should become /some_other_path/my_file1.txt/users/me/my_file1.txt 

回答

2

更新:對此深感抱歉。我錯讀了你的問題。所有你需要做的就是通過filename所以os.path.abspath()

例子:

import os 

filename = os.path.abspath(filename) 

以滿足您的第二種情況(我覺得這很奇怪):

import os 

if os.path.isabs(filenaem): 
    filename os.path.join(
     os.path.join(
      filename, 
      os.getcwd() 
     ), 
     os.path.basename(filename) 
    ) 
+0

** __ FILE__ ** ===> 「的/ usr /local/lib/python3.4/site-packages/module1/file1.py' –

+0

你不明白這個問題。 –

+0

**從哪裏調用模塊**。不是模塊的路徑。 –