关于读取配置文件路径的问题

来源:17-8 重构与运行

骑着毛驴去东莞3506861

2020-11-25

go run main.go
我采用的是 os.Getwd()获取工作目录,go build后,在项目根目录执行读取文件是正确的,但是如果在非项目目录执行可执行文件,就读不到文件了,换成file, _ := exec.LookPath(os.Args[0]);filepath.Abs(file) 的方式,go run 就读不到文件了,请问老师,有什么两种方式都兼容的解决方案

写回答

1回答

ccmouse

2020-11-26

不建议在代码内部处理工作目录与可执行文件所在目录相关的逻辑。建议路径一律由go run main.go时,通过flag给出。https://www.cnblogs.com/aaronthon/p/10883711.html

要读取配置文件,只要一个配置文件路径参数即可。go run main.go --config_file_path=...

我们什么都不要做,这个路径就可以是相对路径,也可以是绝对路径,具体由启动程序的人进行控制。

我们将来要把服务部署到云端,这个路径很有可能会和可执行文件,或者源码所在路径毫无关系,所以外面通过参数给出是最合适的。

0
1
骑着毛驴去东莞3506861
非常感谢!
2020-12-03
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程