Когда я получаю os.path.dirname()
файла в Windows, он использует символ/(преобразуется в \ на Windows), но тогда, когда I os.path.join()
этот путь с другими вещами, он использует символ \ (как и ожидалось).Почему os.path использует как '', так и '/'?
import os
cwd = os.path.dirname(__file__)
print(cwd) # C:/Users/me/Documents/dir1
parent_dir = os.path.join(cwd, '..')
print(parent_dir) # C:/Users/me/Documents/dir1\..
Windows обрабатывает это просто отлично. Согласно MSDN:
функций файлового ввода/вывода в API обращенного Windows «/» до «\» как часть преобразования имени в имя NT-стиле, за исключением случаев использования «\\? \» префикс, как описано в следующих разделах.
Но почему использование обоих косых чернил происходит в первую очередь?
правок:
я запускаю команду, используя python myfile.py
из Cygwin оболочки.
Я использую распределение Anaconda3, которое установлено на C:\Users\me\AppData\Local\Continuum\Anaconda3\python.exe
.
λ which python
/cygdrive/c/Users/me/AppData/Local/Continuum/Anaconda3/python
не может воспроизводить слэш на окнах (первый выход). Как запустить файл python? –
@ Jean-FrançoisFabre Я использую Anaconda, см. Мое редактирование. – Aaron
вы запускаете его из cygwin случайно? –