Сегодня я узнал, что в Python для Windows выполнение os.chdir('f:\\')
сильно отличается от выполнения os.chdir('f:')
. Команда с обратной косой чертой на самом деле изменяет текущий каталог. Без обратной косой черты команда похожа на ввод f:
в командной строке и изменяет текущий каталог на последний текущий каталог на диске f
.
Вот пример:
import time
import os
if __name__ == '__main__':
os.chdir('f:\\directory')
print 'cwd is {}'.format(os.getcwd())
os.chdir('d:\\directory')
print 'cwd is {}'.format(os.getcwd())
os.chdir('f:')
print 'cwd is {}'.format(os.getcwd())
os.chdir('f:\\')
print 'cwd is {}'.format(os.getcwd())
отпечатки
cwd is f:\directory
cwd is d:\directory
cwd is f:\directory
cwd is f:\
Я могу понять, почему эта разница полезна, но не смог найти ничего, документирующего это поведение. Я привык оставлять косые черты в конце своих каталогов, поскольку я обычно использую здесь строки...
Это поведение где-нибудь задокументировано? Могу ли я рассчитывать на то, что он не изменится?
F:
означает текущий рабочий каталог диска F, а `F:\` означает корневой каталог диска F. - person abarnert   schedule 20.07.2018chdir
. Если выopen('F:spam.txt')
, вы получитеspam.txt
в текущем рабочем каталоге F, ноopen('F:\\spam.txt')
вы получитеspam.txt
в корневом каталоге F. - person abarnert   schedule 20.07.2018