qq_花開花謝_0
2019-10-28 16:52:33
我正在嘗試學(xué)習(xí)python,正在制作一個(gè)將輸出腳本的程序。我想使用os.path.join,但是很困惑。根據(jù)文檔,如果我說:os.path.join('c:', 'sourcedir')我懂了"C:sourcedir"。根據(jù)文檔,這是正常的,對嗎?但是當(dāng)我使用copytree命令時(shí),Python將以所需的方式輸出它,例如:import shutilsrc = os.path.join('c:', 'src')dst = os.path.join('c:', 'dst')shutil.copytree(src, dst)這是我得到的錯誤代碼:WindowsError:[錯誤3]系統(tǒng)找不到指定的路徑:'C:src /*.*'如果我用換行os.path.join,os.path.normpath則會得到相同的錯誤。如果os.path.join不能以這種方式使用它,那么我對其目的感到困惑。根據(jù)Stack Overflow建議的頁面,在連接中不應(yīng)該使用斜杠-是的,我認(rèn)為是正確的嗎?
3 回答

揚(yáng)帆大魚
TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊
Windows具有每個(gè)驅(qū)動器的當(dāng)前目錄的概念。因此,"c:sourcedir"意味著在當(dāng)前C:目錄中有“ sourcedir”,并且您需要指定一個(gè)絕對目錄。
這些中的任何一個(gè)都應(yīng)該工作并給出相同的結(jié)果,但是目前我還沒有啟動Windows VM進(jìn)行仔細(xì)檢查:
"c:/sourcedir"
os.path.join("/", "c:", "sourcedir")
os.path.join("c:/", "sourcedir")

尚方寶劍之說
TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
要更加學(xué)究,最符合python doc的答案是:
mypath = os.path.join('c:', os.sep, 'sourcedir')
由于您還需要os.sep作為posix根路徑:
mypath = os.path.join(os.sep, 'usr', 'lib')
添加回答
舉報(bào)
0/150
提交
取消