我想获取当前文件的目录,但是通过os.path.abspath(__file__)
,我只能获取类似/home/gmarth/Documents/pythonLearning.py
的内容,但我想删除文件名,左文件路径类似/home/gmarth/Documents
。我在Windows上通过以下代码实现了这一点:
current = str(os.path.abspath(__file__))
for itera in range(len(current) - 1, 0, -1):
if current[itera] == '\\':
dir = current[0: itera]
break;
self._path = dir
但在ubuntu上,几乎相同的代码不起作用:
current = str(os.path.abspath(__file__))
for itera in range(len(current)-1, 0, -1):
if current[itera] == '/': #only changed here
directory = current[0: itera]
break;
self._path = dierctory
我得到:
UnboundLocalError: local variable 'directory' referenced before assignment
这让我很困惑,我在ubnuntu上没有太多经验,我怎么能像Windows一样得到类似的结果呢
p.S.(唐;(我不知道这是否重要)在windows上,我将其构建为一个项目;在Ubuntu上,它是一个.py
文件
你的代码在我的ubuntu上运行良好(减去结尾的打字错误)
这个错误意味着在尝试将变量放入_path之前从未使用过名为“directory”的变量,也就是说,您从未进入if(这很奇怪,因为您至少应该在某个点命中根)
这里有一个更便携的替代方案:
^{} 替换您的循环
相关问题 更多 >
编程相关推荐