5

如果这是一个已经解决的问题,我深表歉意。我想在运行 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

4 回答 4

8

像这样:

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

虽然os.path.split返回一个元组,但您不需要解包它。您可以简单地选择您需要的项目并忽略您不需要的项目。

于 2013-07-07T21:03:41.390 回答
3

使用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.
于 2013-07-07T21:03:45.953 回答
1

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

os.path.basename(os.getcwd())
于 2013-07-07T21:05:40.253 回答
0

表示“这是我不想要的东西”的标准 pythonic 方式是调用它 _ - 如:

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

请注意,这并没有做任何特别的事情。该对象是在 os.split() 中创建的,它仍然被返回并命名为 _ - 但这确实让阅读您的代码的人清楚您不关心该特定元素。

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

于 2013-07-07T21:54:25.383 回答