Есть ли простой способ переместить один каталог в python с помощью одной строки кода? Нечто похожее на cd ..
в командной строке
Перемещение одного каталога в Python
Ответ 1
>>> import os
>>> print os.path.abspath(os.curdir)
C:\Python27
>>> os.chdir("..")
>>> print os.path.abspath(os.curdir)
C:\
Ответ 2
Используйте модуль os
:
import os
os.chdir('..')
должен работать
Ответ 3
Очевидно, что os.chdir('..') - правильный ответ здесь. Но только FYI, если в будущем вы столкнетесь с ситуацией, когда вам приходится активно манипулировать каталогами и путями, вот отличный пакет (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'
Ответ 4
Ну.. Я не уверен, насколько портативен os.chdir('..'). В Unix это настоящие имена файлов. Я бы предпочел следующее:
import os
os.chdir(os.path.dirname(os.getcwd()))
Получает текущий рабочий каталог, активирует один каталог и затем переходит в этот каталог.
Ответ 5
В Python 3.4 был представлен pathlib:
>>> from pathlib import Path
>>> p = Path('/etc/usr/lib')
>>> p
PosixPath('/etc/usr/lib')
>>> p.parent
PosixPath('/etc/usr')
Он также поставляется со многими другими полезными функциями, например, для объединения путей с использованием косой черты или простого обхода дерева каталогов.
Дополнительную информацию смотрите в документации или этой записи блога, в которой рассматриваются различия между os.path и pathlib.