在python中获取没有完整路径的当前目录

时间:2013-07-07 21:02:23

标签: python os.path

如果这是一个已经解决的问题,我道歉。我想在运行Python脚本时或在Python中获取当前目录。以下内容将返回完整路径,包括当前目录:

os.getcwd()

我也可以将路径一直到当前目录:

os.path.dirname(os.getcwd())

使用os.path.split将返回与上面相同的内容,加上当前文件夹,但最后我得到了一个我想要的对象:

(thing_I_dont_want, thing_I_want) = os.path.split(os.getcwd())

有没有办法可以得到我想要的东西,当前文件夹,而不创建任何我不想要的对象?或者,我可以用一些代替变量thing_I_dont_want来阻止它被创建(例如(*, thing_I_want))吗?

谢谢!

4 个答案:

答案 0 :(得分:7)

像这样:

os.path.split(os.getcwd())[1]

虽然os.path.split返回一个元组,但您不需要解压缩它。您只需选择所需的项目,然后忽略您不需要的项目。

答案 1 :(得分:2)

使用os.path.split

>>> os.path.split(os.getcwd())
('/home/user', 'py')
>>> os.path.split(os.getcwd())[-1]
'py'

os.path.split上的帮助:

>>> print os.path.split.__doc__
Split a pathname.  Returns tuple "(head, tail)" where "tail" is
    everything after the final slash.  Either part may be empty.

答案 2 :(得分:0)

你可以试试这个,虽然如果路径名由于某种原因以/结尾,它并不安全(如所有给定的解决方案):

os.path.basename(os.getcwd())

答案 3 :(得分:0)

表示“这是我不想要的东西”的标准pythonic方式是将其称为_ - 如下所示:

_, thing_I_want = os.path.split(os.getcwd())

请注意,这没有什么特别之处。该对象是在os.split()中创建的,它仍然被返回并给出了名称_ - 但这确实让那些阅读你的代码的人明白你并不关心那个特定的元素。

除了作为向其他人发出的信号之外,大多数IDE和代码验证器都会理解名为_的变量将被忽略,并且它们不会做出警告你从未使用它的事情。