[python3] 打开文件open函数的坑

Posted by Nalido on April 27, 2018

Python3中打开文件的open函数和python2不同,经常会导致各种莫名其妙的错误.

例如读取json时,以下代码在Python2中可以正常运行.

with open(jsFile, "a+") as f:
    try:
        dct = json.load(f)
    except ValueError as e:
        print('load json failed.', e)
        dct = {}

但是在python3中,上述代码就会报错. 修改方法是改为r.

Expecting value: line 1 column 1 (char 0)

官方文档中有提到,open的mode参数的一些限制,好像是某些参数不能同时使用,例如a+不可以同时使用.(但是忘记官方文档里的具体内容了,待补充)

因为老是踩到这个坑,怒而记之.