zoukankan      html  css  js  c++  java
  • python文件读取操作、序列化

    1.对文件进行读写操作时,先建立文件句柄

    1 f = open("test.txt","r",encoding="UTF-8")

    其中,r为文件操作权限:

    r-只读,w-写(新建文件后写),a-追加(f.write()后在最后追加信息),r+读写(追加写),rb二进制文件读(后面不跟encodi)常用来做网络传输及视频文件读写操作。

    2.文件读操作

    1 f.read()              #读取文件
    2 f.readline()          #读一行
    3 f.readlines()         #从节点处读取文件并生成一个列表

     在读取文件时,有一类似光标的功能。可以对光标进行操作

    f.tell()      #显示光标位置
    f.seek()      #将光标移动到指定位置
    f.truncate() #从头截取指定光标数的字符,包含空格、标点。

    常规情况tell与seek应搭配使用。

    用指令将数据从内存中刷新到硬盘中(强制刷新):

    1 f.flush()

    3.序列化

     将内存状态写至文件常用的为json与pickle数据序列化,json序列化存储的文件可作为与java等语言的接口文件,但只能做简单数据的存储。

    1 import json
    2 info = {"name":"Aaron",
    3         "sex":"male",
    4         "age":32}
    5 f = open("json序列化.txt","w",encoding="utf-8")
    6 print(json.dumps(info))
    7 f.write(json.dumps(info))
    8 f.close()


    打印数据:{"name": "Aaron", "sex": "male", "age": 32}
    json序列化.txt中的数据
    {"name": "Aaron", "sex": "male", "age": 32}
    
    

    将数据存贮至文件中后,反序列化

    1 import json
    2 f = open("json序列化.txt","r",encoding="utf-8")
    3 data = json.loads(f.read())

    pickle的序列化与反序列化与json方法一样,但存储的文件为二进制文件

    import pickle
    info = {"name":"Aaron",
            "sex":"male",
            "age":32}
    f = open("json序列化.txt","wb",)   #此处应为wb
    print(pickle.dumps(info))
    f.write(pickle.dumps(info))
    f.close()

    打印出的值:b'x80x03}qx00(Xx04x00x00x00nameqx01Xx05x00x00x00Aaronqx02Xx03x00x00x00sexqx03Xx04x00x00x00maleqx04Xx03x00x00x00ageqx05K u.'

     pickle的反序列化

    1 import json,pickle
    2 f = open("json序列化.txt","rb")
    3 data = pickle.loads(f.read())
    4 print(data["name"])
  • 相关阅读:
    VS2013中using System.Windows.Forms;引用不成功
    <C#任务导引教程>练习五
    <C#任务导引教程>练习四
    <C#任务导引教程>练习三
    <C#任务导引教程>练习二
    printf("%d ",printf("%d",printf("%d",i)));
    <C#任务导引教程>练习一
    C代码
    SQLServer创建约束
    SQL语句修改字段类型与第一次SQLServer试验解答
  • 原文地址:https://www.cnblogs.com/yinsedeyinse/p/9853694.html
Copyright © 2011-2022 走看看