【问题标题】:get script directory name - Python [duplicate]获取脚本目录名称 - Python [重复]
【发布时间】:2015-09-24 08:24:29
【问题描述】:

我知道我可以使用它来获取完整的文件路径

os.path.dirname(os.path.realpath(__file__))

但我只想要文件夹的名称,我的脚本在里面。所以如果我有 my_script.py 并且它位于

/home/user/test/my_script.py

我想返回“测试”我该怎么做?

谢谢

【问题讨论】:

  • 答案就在这里。 link

标签: python file python-os getcwd


【解决方案1】:
import os
os.path.basename(os.path.dirname(os.path.realpath(__file__)))

分解:

currentFile = __file__  # May be 'my_script', or './my_script' or
                        # '/home/user/test/my_script.py' depending on exactly how
                        # the script was run/loaded.
realPath = os.path.realpath(currentFile)  # /home/user/test/my_script.py
dirPath = os.path.dirname(realPath)  # /home/user/test
dirName = os.path.basename(dirPath) # test

【讨论】:

  • 如果您只关心运行脚本的目录,+1 os.path.basename(os.getcwd()) 也可以使用。
【解决方案2】:
>>> import os
>>> os.getcwd()

【讨论】:

  • 这将返回/home/user/test/,而不是test
  • 实际上,如果您要从另一个目录 (cd /home/user; python test/my_script.py) 调用脚本,它甚至不会返回。它将返回您所在的目录(在示例中:/home/user/
  • @bytesized 但是 OP 确实要求获取 当前工作目录,这意味着您在运行解释器时所在的当前目录。所以os.getcwd 就是这么做的。
  • @greatwolf 引用 OP,“但我只想要文件夹的名称,我的脚本在里面。所以如果我有 my_script.py 并且它位于 /home/user/test/my_script.py 我想返回'测试'”。尽管问题的标题是“获取当前目录”,但这不是 OP 想要的。
  • 这只是返回当前工作目录。因此,无论您从哪个位置调用您的 python 脚本,都将被返回。 @greatwolf 所以是的,cwd() 不能解决问题,因为 OP 只想要父目录的第一级路径,而不是从 root aka '/'
【解决方案3】:

随便写

import os
import os.path
print( os.path.basename(os.getcwd()) )

希望这会有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-17
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多