如果这是一个已经解决的问题,我道歉。我想在运行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)
)吗?
谢谢!
答案 0 :(得分:7)
像这样:
os.path.split(os.getcwd())[1]
虽然os.path.split
返回一个元组,但您不需要解压缩它。您只需选择所需的项目,然后忽略您不需要的项目。
答案 1 :(得分:2)
>>> 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和代码验证器都会理解名为_的变量将被忽略,并且它们不会做出警告你从未使用它的事情。