使用python在ubuntu上追加目录

2024-09-29 23:30:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想获取当前文件的目录,但是通过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文件


Tags: 文件path代码pyhomeforoswindows
2条回答

你的代码在我的ubuntu上运行良好(减去结尾的打字错误)

这个错误意味着在尝试将变量放入_path之前从未使用过名为“directory”的变量,也就是说,您从未进入if(这很奇怪,因为您至少应该在某个点命中根)

这里有一个更便携的替代方案:

self._path = os.path.dirname(os.path.realpath(__file__))

^{}替换您的循环

相关问题 更多 >

    热门问题