文件操作

2019-01-09  本文已影响0人  小龙虾0o0

今天在学习文件操作的时候,对json文件进行操作。

import json
with open('ceshi.json', 'r+') as f:
    l = json.load(f)
    print(l)

>>> 123

注意json文件需要有值,没有会报错。


但是,我既然r+了,意味着我还需要对其进行写操作。我希望把123加1再写入json文件

with open('ceshi.json', 'r+') as f:
    l = json.load(f)
    print(l)
    l += 1
    json.dump(l, f)

打开json文件,123变成了123124,再执行变成了123124123125


上网进行查询,原来是r,w,r+,w+,a等拥有不同的特性,在操作文件后,他们的光标位置是需要考虑的
我运用f.tell()返回光标位置了解到

参数 操作 光标位置
r read 从开头到末尾
r+ read 从开头到末尾(再使用write操作会从末尾添加)
r+ write 从开头到写了N个字符的位置(再使用read会从N+1开始读)
w write 从开头到末尾(会覆盖所有内容)
w+ read 报错(原因是程序会打开文件后直接删除里面的内容)
w+ write 从开头到末尾(再使用read会报错,因为光标再末尾)
a write 从末尾到新文件末尾
a+ read 从末尾开始,read报错
a+ write 从末尾开始到新文件末尾

总结,重点还是注意光标位置以及w+会直接删除文件内容。


下面是操作光标的方法

f.seek(offset,whence)
#移动光标方法

offset 表示偏移量,whence 表示移动到的位置,0表开头,1表当前位置,2表末尾

上一篇下一篇

猜你喜欢

热点阅读