把代码里的绝对路径换成相对路径,直接改成.\打印出来发现总是在根目录下。
网上找到了解决办法,参考文章:
https://www.jianshu.com/p/76a3d317722c
问题原因:
Python里写这种相对路径, 是相对于终端的当前目录的。
解决办法:
先找到当前脚本的绝对路径
print('getcwd', os.getcwd())
print('sysargv', sys.argv)
print('realpath', os.path.realpath(sys.argv[0]))
print('realpath.split', os.path.split(os.path.realpath(sys.argv[0]))[0]) # 这是脚本所在目录
print('__file__', __file__)
print('__file__.dir', os.path.dirname(__file__)) # 这也是脚本所在目录
以下是输出:
getcwd /etc/named
sysargv ['/home/speng/t.py']
realpath /home/speng/t.py
realpath.split /home/speng
__file__ /home/speng/t.py
__file__.dir /home/speng
在绝对路径后加上相对路径部分