Подтвердить что ты не робот

Перемещение одного каталога в Python

Есть ли простой способ переместить один каталог в python с помощью одной строки кода? Нечто похожее на cd .. в командной строке

4b9b3361

Ответ 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.