當我得到Windows上的文件os.path.dirname()
時,它使用/字符(由Windows轉換爲\),但當我與其他東西的路徑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:
在Windows API轉換文件I/O功能「/」到「\」作爲名稱轉換爲NT樣式名稱的一部分,使用時除了「\\?\」前綴詳見下節。
但爲什麼使用兩個斜槓首先出現?
EDITS:
我運行使用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
無法重現Windows上的斜槓(第一輸出)。你如何運行你的python文件? –
@ Jean-FrançoisFabre我正在使用Anaconda,請參閱我的編輯。 – Aaron
你是從cygwin偶然運行它嗎? –