虽然这个问题很小,但我以为颇有必要单独拿出来强调一下。python
这样在遇到相似错误的时候能够很快反应过来,进而节约了时间。spa
这里我拿 shelve 模块举例(shelve的做用大体就是把python变量存放到文件中去),相似的问题均可以这样变通。code
首先咱们建立一个种子文件seed.py:blog
import shelve data = shelve.open('data.db') data['secret'] = 'hello world'
运行后在脚本文件所在目录生成了.db文件(这些文件就是存放your 'secret'的文件)字符串
而后咱们建立test.py 文件来使用该db文件。class
import shelve data = shelve.open('data.db') print(data['secret'])
运行后会发现 屏幕显示 'hello world' 字符串。至此,你以前存储的 'secret' 就显示出来了。test
重点来了。。。。。import
不少时候咱们并不会这样直接运行脚本文件,更多的状况是把该文件做为脚本,在须要的时候进行调用。。变量
举个栗子:搜索
假设我如今处于dir目录,我忘记了个人 'secret',我想再次调用 ../test.py 来查看,能够吗?
运行后发现:
错误提示为 键错误:没有'secret' 这个键。
可是咱们知道文件里明明是有的啊,并且刚才咱们运行的时候也正确显示了
不少时候咱们就在这里浪费了大把时间。。。 运气好的话能搜索到相似的文章,而后就开心的解决了。运气很差的话,,,本身脑补会怎样吧
其实缘由就是:当咱们运行python脚本的时候,对于python脚原本说,脚本的默认当前目录 就是 你执行这条运行命令时所在的目录
例如:我如今是在dir目录执行的这个脚本,那么python脚本的当前目录就在dir目录,而不是原来的temp目录
再细化一些,根据上述脚本,data = shelve.open('data.db') 就不是在temp目录找'data.db'了,而是在运行该脚本的dir目录下找'data.db',
可是该目录下没有'data.db',因此会新建db文件,而新建的db文件里天然是没有'secret'的。
知道了这些,就会瞬间感到豁然开朗,一切谜团都不复存在。
因而愉快的打开dir目录,果真,发现了新的db文件:
解决方法就是:不要让python依赖于默认的当前目录,给它指明绝对路径,这样就能够随时随地查看你的 'secret' 啦!