擅长:python、mysql、java
<p>下面的代码将找到<em>调用</em>模块的位置,从程序员的角度来看这是有意义的:</p>
<pre><code> ## some magic to allow paths relative to calling module
if path.startswith('/'):
self.path = path
else:
frame = sys._getframe(1)
base = os.path.dirname(frame.f_globals['__file__'])
self.path = os.path.join(base, path)
</code></pre>
<p>也就是说,如果您的项目位于/home/foo/project中,并且您希望在scripts/中引用脚本“myscript”,则只需传递“scripts/myscript”。代码片段会发现调用者位于/home/foo/project中,整个路径应该是/home/foo/projects/scripts/myscript。在</p>
<p>或者,您可以始终要求程序员指定完整路径,并使用os.path.exists如果它存在的话。在</p>