美文网首页
r、r+、w、w+、a、a+操作

r、r+、w、w+、a、a+操作

作者: Dayon | 来源:发表于2019-09-24 15:29 被阅读0次

    r 打开只读文件,该文件必须存在。
    r+ 打开可读写的文件,该文件必须存在。
    w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
    w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
    a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
    a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
    wb 在windows下,以二进制进行存储,\r\n才是换行
    w 是以文本方式进行存储\n是换行
    rb 取出来的也是\r\n
    r取出来的是\n
    实例如下:

    # -*- coding:utf-8 -*-
    
    import json
    import jsonpath
    import time
    
    # 1、第一种存储字典和数组
    
    listDict = [{"city": "北京"},{"name": "小明"}]
    strlist = json.dumps(listDict,  ensure_ascii=False)
    print type(strlist) # <type 'str'>
    # 写数据
    with open("listDict.json",'w') as file:
        file.write(strlist)
    
    # 2、第二种存储字典和数组
    listStr = [{"city": "北京"}, {"name": "大刘"}]
    json.dump(listStr, open("listStr.json","w"), ensure_ascii=False)
    
    dictStr = {"city": "北京", "name": "大刘"}
    json.dump(dictStr, open("dictStr.json","w"), ensure_ascii=False)
    time.sleep(1)
    
    # ------------ 从文件里面取数据 ---------
    dictList = json.load(open("listDict.json",'r'))
    # 输出北京
    print dictList[0]["city"] 
    
    # ------------ 读出字典loads ----------
    strDict = '{"city": "北京", "name": "大猫"}'
    # <type 'dict'>
    print type(json.loads(strDict))
    
    # ----------- jsonpath的使用 ---------
    jsonobj = json.loads(strDict)
    # 从根节点开始,匹配name节点
    citylist = jsonpath.jsonpath(jsonobj,'$..name')
    # citylist数组
    print citylist[0].encode('utf-8')
    
    

    相关文章

      网友评论

          本文标题:r、r+、w、w+、a、a+操作

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