2017-08-16 130 views
0

對於我的項目,我必須從一些文件讀取。我的同事,我有一個Mac,一個Windows,因爲我們並不總是想改變整個文件名,我們想要插入相對路徑,結果不起作用。窗口和Python的相對路徑

的相對路徑,我們使用:

rel_path = "data/output/db_snapshot.log" 

於是我進口os和想做

path_db = os.path.abspath(rel_path) 

但對於輸出我得到一個錯誤:

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\mossnef\\PycharmProjects\\model_py_dms_bubble_system\\sim\\analysis\\data\\output\\db_snapshot.log' 

如果我雖然將整個路徑複製並粘貼到我的路徑變量中,完全沒有問題,我可以讀取它:

path_db = r"C:\Users\mossnef\PycharmProjects\model_py_dms_bubble_system\data\output\db_snapshot.log" 

我已經發現,Windows的r我補充說是由於某種原因需要的。有沒有使用相對路徑使其適用於Windows和Mac的方法?

+0

看起來你已經在一個子目錄中獲得了你的python文件。 – Chris

+0

您在開頭添加的'r'表示原始文本,因此反斜槓將視爲路徑的一部分而不是轉義字符。 Win是必需的,因爲win路徑包含\。 Linux不。 – Vinny

+1

[與平臺無關的文件路徑?]的可能重複(https://stackoverflow.com/questions/6036129/platform-independent-file-paths) – davedwards

回答

0

你有兩條不同的路徑。

FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\mossnef\\PycharmProjects\\model_py_dms_bubble_system\\sim\\analysis\\data\\output\\db_snapshot.log' 

第二路徑不包含

\\sim\\analysis 

請注意:os.path.abspath使用os.getcwd()推導的絕對路徑。

您可能是從錯誤的文件夾中使用它。