美文网首页
文件操作

文件操作

作者: 小龙虾0o0 | 来源:发表于2019-01-09 19:27 被阅读0次

    今天在学习文件操作的时候,对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表末尾

    相关文章

      网友评论

          本文标题:文件操作

          本文链接:https://www.haomeiwen.com/subject/gzvgrqtx.html