我正在用Python編寫一個用於Windows的命令行目錄導航器,並且用os.path.join掙扎了一下。這裏,在本質上,我想要做的事:os.path.join格式不正確的路徑
abspath = "C:\Python32\Projects\ls.py"
abspath = abspath.split('\\')
print(abspath) #this prints ['C:', 'Python32', 'Projects', 'ls.py']
if(options.mFlag):
print(os.path.join(*abspath)) #this prints C:Python32\Projects\ls.py
m = time.ctime(os.path.getmtime(os.path.join(*abspath))) #this throws an exception
的問題是,os.path.join是不是後面插入「/」「C:」,我想不通爲什麼。任何幫助?
編輯:如果將來有人來這裏尋找解決方案,我只是在「C:」之後添加了os.sep,而不是硬編碼反斜槓,並且工作正常。
該塊的重點是使程序平臺獨立。在插入此函數之前,OSX中的代碼未正確執行。謝謝你的提示,我會嘗試分裂驅動。 – bkaiser
@benjaminhkaiser:你可以做的另一件事是使用'/'作爲路徑分隔符而不是\。這仍然可以在Windows上運行,但也可以在其他平臺上運行。 – BrenBarn
那麼我們如何才能正確地添加斜槓呢? 'os.path.join(os.getenv(「SystemDrive」),'somepath')'==''C:somepath'' – endolith