有一种简单的方法可以使用一行代码在python中移动一个目录吗?与命令行中的cd ..
类似的东西
答案 0 :(得分:43)
>>> import os
>>> print os.path.abspath(os.curdir)
C:\Python27
>>> os.chdir("..")
>>> print os.path.abspath(os.curdir)
C:\
答案 1 :(得分:27)
使用os
模块:
import os
os.chdir('..')
应该有效
答案 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'
答案 3 :(得分:11)
嗯..我不确定os.chdir('..')实际上是多么便携。在Unix下,这些是真正的文件名。我更喜欢以下内容:
import os
os.chdir(os.path.dirname(os.getcwd()))
获取当前工作目录,升级一个目录,然后更改到该目录。
答案 4 :(得分:4)
在Python 3.4中引入了 pathlib :
>>> from pathlib import Path
>>> p = Path('/etc/usr/lib')
>>> p
PosixPath('/etc/usr/lib')
>>> p.parent
PosixPath('/etc/usr')
它还附带许多其他有用的功能,例如使用斜杠连接路径或轻松浏览目录树。
答案 5 :(得分:0)
虽然这并不完全是OP的意思,因为这并不简单,但是从Notepad ++运行脚本时,os.getcwd()
方法无法按预期工作。这就是我要做的:
import os
# get real current directory (determined by the file location)
curDir, _ = os.path.split(os.path.abspath(__file__))
print(curDir) # print current directory
定义如下函数:
def dir_up(path,n): # here 'path' is your path, 'n' is number of dirs up you want to go
for _ in range(n):
path = dir_up(path.rpartition("\\")[0], 0) # second argument equal '0' ensures that
# the function iterates proper number of times
return(path)
此功能的使用非常简单-您所需要的只是路径和目录数。
print(dir_up(curDir,3)) # print 3 directories above the current one
唯一的缺点是它不会在驱动器号上停下来,只会向您显示空字符串。
答案 6 :(得分:0)
用os组合Kim的答案:
p=Path(os.getcwd())
os.chdir(p.parent)