2017-04-20 127 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")