python读取文件是个比较常用的操作,最近我在读取文件的时候却遇到下面这个问题。
我的代码是:
try:
file = open("./logs/test")
...
finally:
file.close()
经测试,当我在脚本所在目录执行时,便不会出现这个错误
于是可以肯定
file = open("./logs/test")
这段代码中 “.” 所代表的当前目录,并不是脚本所在目录。
通过查询资料,发现python中可能有以下三个获取当前目录的方法,这里将他们的结果打印出来
print sys.path[0]
print os.getcwd()
print sys.argv[0]
其中第一个是我的脚本所在的目录,第二个是我输入命令让脚本运行的目录,第三个连目录都不是。
所以将代码改成下面这样,问题即可解决
try:
file = open(sys.path[0]+"/logs/test")
...
finally:
file.close()
如果有帮到您,打个赏呗