在Python中向上移动一个目录

use*_*857 29 python directory

有一种简单的方法可以使用一行代码在python中移动一个目录吗?与cd ..命令行类似的东西

Rya*_*n G 49

>>> import os
>>> print os.path.abspath(os.curdir)
C:\Python27
>>> os.chdir("..")
>>> print os.path.abspath(os.curdir)
C:\
Run Code Online (Sandbox Code Playgroud)


Ste*_*son 27

使用os模块:

import os
os.chdir('..')
Run Code Online (Sandbox Code Playgroud)

应该管用

  • 大声笑 - 知道你经常感觉如何:)有时候答案出现在这里的速度是疯狂的 - 我发誓有些人活在SO! (2认同)

小智 13

显然os.chdir('..')在这里是正确的答案.但只是仅供参考,如果将来遇到必须广泛操作目录和路径的情况,这里有一个很棒的软件包(Unipath)可以让你把它们当作Python对象:https://pypi.python.org/pypi/Unipath

这样你就可以这样做:

>>> from unipath import Path
>>> p = Path("/usr/lib/python2.5/gopherlib.py")
>>> p.parent
Path("/usr/lib/python2.5")
>>> p.name
Path("gopherlib.py")
>>> p.ext
'.py'
Run Code Online (Sandbox Code Playgroud)


ayc*_*dee 12

嗯..我不确定os.chdir('..')实际上是多么便携.在Unix下,这些是真正的文件名.我更喜欢以下内容:

import os
os.chdir(os.path.dirname(os.getcwd()))
Run Code Online (Sandbox Code Playgroud)

获取当前工作目录,升级一个目录,然后更改到该目录.

  • 另外,输入稍微少一点,`os.chdir(os.path.pardir)`.这个答案稍微独立于平台,但它有点没什么意义,因为虽然你可以想象一个不代表`..`作为父目录的平台,任何人当前使用的平台(包括windows和UNIX)做那样代表它. (6认同)

Kim*_*Kim 9

在Python 3.4 中引入了pathlib

>>> from pathlib import Path
>>> p = Path('/etc/usr/lib')
>>> p
PosixPath('/etc/usr/lib')
>>> p.parent
PosixPath('/etc/usr')
Run Code Online (Sandbox Code Playgroud)

它还具有许多其他有用的功能,例如,使用斜杠连接路径或轻松遍历目录树。

有关更多信息,请参阅docs此博客文章,其中涵盖了os.path和pathlib之间的区别。