我在一台Jupyter Notebook服务器(v4.2.2)上使用Python 3.4.2和
def __init__(self, trainingSamplesFolder='samples', maskFolder='masks'):
self.trainingSamplesFolder = self.__getAbsPath(trainingSamplesFolder)
self.maskFolder = self.__getAbsPath(maskFolder)
def __getAbsPath(self, path):
if os.path.isabs(path):
return path
else:
return os.path.join(os.path.dirname(__file__), path)
__getAbsPath(self, path)
判断path
参数是相对路径还是绝对路径,并返回path
的绝对版本.这样我以后可以安全地使用返回的path
.
但我得到了错误
NameError:未定义名称
'__file__'
我在网上搜索了这个错误,找到了"解决方案",我最好使用sys.argv[0]
,但print(sys.argv[0])
返回
/usr/local/lib/python3.4/dist-packages/ipykernel/__main__.py
但是正确的笔记本位置应该是/主页/ubuntu/笔记本电脑/
.
感谢Martijn Pieters提供的参考100( comments ).最后一个答案(不接受)非常适合我的需要:
print(os.getcwd())
/主页/ubuntu/笔记本电脑