2017-04-20 125 views
0

我遇到的問題通過我的代碼運行在Windows(本地測試和開發)和Linux(CI CD)上的路徑加載文件。如何獲得跨平臺絕對相對文件路徑?

雖然在Windows本地運行我的代碼,文件路徑相對工作正常,當我的代碼運行在Linux中,變成一個爛攤子,並返回一個錯誤:No such file or directory

有沒有在Python這樣的代碼是跨平臺解決它?

我的代碼是這樣的:

def get_event_json_file_path(fileName): 
    file_dir = os.path.dirname(os.path.realpath('__file__')) 
    file_path = os.path.join(file_dir, "events/" + fileName) 
    return file_path 

是否有一個代碼來獲取文件夾的類路徑?

+0

向我們展示你的代碼! – Alfe

+0

當然,你可以在'os.path'和下面的函數中使用平臺獨立處理路徑,使絕對路徑相對,等等。 – Alfe

+0

如果你使用相對路徑和斜線(不是反斜槓)作爲分隔符,它應該可以工作在所有操作系統上。 –

回答

2

我設法編寫此功能:

def get_relative_file_path(file_dir_path, fileName): 
    dir = os.path.dirname(__file__) 
    file_path = os.path.join(dir, file_dir_path,fileName) 
    return file_path 

用法:

get_relative_file_path('../resources/', "restCallBodySchema.json")