2013-05-06 36 views
0

我一直在努力尝试基于调用方法和脚本的脚本名称创建一个文件路径目录,该脚本在不传递任何信息前调用它。这个想法是,用户应该写一个非常简单的.py文件,对被调用脚本的内部方法知之甚少,因此用户不应该传递任何不必要的内容。获取调用函数的python脚本的文件名

我设法让正在使用与测试用例检查模块调用脚本方法的名称,但奇怪的是我一直有一些问题得到那个叫实际.py文件的名称从第二个py的角度来看第二个.py文件。

为了澄清,这就是我想要做的事:

---Script1.py--- 
import Script2 

userMethod(self): 
    callScript = Script2.Script2Class() 
    callScript.execute() 


---Script2.py--- 
class Script2Class(object): 

    def execute(self): 
     # Other code above this 
     self.getPathInfo() 

    def getPathInfo(self): 
     # Code needed to obtain original scripts filename (the part I've been stumped with) 

我没有一直有很多运气与堆栈,这是多么我已经得到调用方法名:我只是没有在堆栈的正确位置寻找,还是在这里错过了一些明显的东西?

+0

另一个重复:确定在何处执行的功能?(http://stackoverflow.com/q/16305867) – 2013-05-06 17:45:36

回答

1
import inspect 
# ... your code here 
def getPathInfo(self): 
    for item in inspect.stack(): 
     if item and __file__ not in item: 
      return item[1] 

    return __file__ 
+3

我建议你添加一些解释你的代码...代码仅是(有时)很好,但代码*和*解释(大部分时间)非常好 – Barranka 2014-07-03 16:09:49

相关问题