http://c.biancheng.net/view/5693.html
这个讲的很详细。
我原本以为 相对路径是文件对文件的相对路径。
但实际上,应该是文件相对于工作目录的路径。
例如:目录如下
m:
---bin
-------p.py 主文件
---lib
-------u.py 方法文件,其中有open('xx.sql')
---sql
-------xx.sql
如果我cd m/bin , python p.py , 则 u.py中open('../sql/xx.sql')
如果我cd m , python bin/p.py , 则 u.py中open('./sql/xx.sql') 或者 open('sql/xx.sql') 。 两个都是指当前目录。
你看,文件与文件之间的相对路径没变,但是由于工作目录(就是运行py主程序的地方)改变了,所以引用的sql文件路径也必须跟着工作目录变。
所以相对路劲是相对于工作目录的。
小白某天写代码遇到的坑与自己的理解。。欢迎指正。:)