zoukankan      html  css  js  c++  java
  • 对象存储/编码/解码

    存储:永久性保存对象

    有时候,我们需要将某些字符串、列表、字典、元组等数据⻓久保存,现在,这个时候,就需要使⽤
    永久性存储的模块⽂件pickle。pickle模块可以将
    对象转换为⼀种可以存储或读取的格式。

    pickle:该模块实现了数据的序列化与反序列化,通过pickle的序列化操作,可以实现将程序中的对象
    保存到⽂件信息中,实现永久性存储。通过pickle的
    反序列化操作,可以实现将程序中的永久性存储的对象解析出来
    在使用文件读取完后一定要把文件关闭了,如:f1.close()

    # 存储list
    #导入 pickle
    import pickle
    list1=[12,2,3]
    f1=open('list.txt','wb')
    # 将列表存入到文件中
    # 语法格式:
    # pickle.dump(存储的数据,目标文件)
    pickle.dump(list1,f1)
    f1.close()
    # 建议:存储数据时,尽量不要使用系统能够打开的后缀名,
    # 优点:防止用户随意打开,更改数据
    # 从文件中读取列表
    # 语法格式:
    # pickle.load(存储的数据,目标文件)
    f2=open("list.txt","rb")
    list2=pickle.load(f2)
    print(list2)

    简写模式

    好处:可以省略关闭文件这个操作,减少代码

    #从文件中读取对象
    with open("list.txt","rb") as f1:
        pickle.load(f1)
    #将对象写如文件中
    with open("list.txt","wb") as f2:
        pickle.dump(list1,f2)

    编码/解码

    编码:文件.encode(编码格式)

    解码:文件.decode(编码格式)

    常见编码格式  

      GB2312 是中国规定的汉字编码,也可以说是简体中文的字符集编码

      GBK      是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名

      cp936   中文本地系统是Windows中的cmd,默认codepage是CP936,cp936就是指系统里第936号编码格式,即GB2312的编码。

           (当然有其它编码格式:cp950 繁体中文、cp932 日语、cp1250 中欧语言。。。)

      Unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

      UTF-8 (8-bit Unicode Transformation Format)是最流行的一种对 Unicode 进行传播和存储的编码方式。它用不同的 bytes 来表示每一个代码点。

          ASCII 字符每个只需要用一个 byte ,与 ASCII 的编码是一样的。所以说 ASCII 是 UTF-8 的一个子集。

    #编码
    with open("file2.txt","wb") as f1:
        str1="123132djijdi外交诶"
        enstr=str1.encode("utf-8")
        print(enstr)
        f1.write(enstr)
    #解码
    with open("file2.txt","rb") as f2:
        str2=f2.read()
        destr=str2.decode("utf-8")
        print(destr)
  • 相关阅读:
    [LeetCode] 286. Walls and Gates 墙和门
    [LeetCode] Sparse Matrix Multiplication 稀疏矩阵相乘
    [LeetCode] 314. Binary Tree Vertical Order Traversal 二叉树的竖直遍历
    [LeetCode] 337. House Robber III 打家劫舍之三
    [LeetCode] Palindrome Pairs 回文对
    [LeetCode] 302. Smallest Rectangle Enclosing Black Pixels 包含黑像素的最小矩阵
    Nginx安装及配置详解
    Spring Boot项目属性配置
    maven仓库阿里云镜像配置
    maven仓库阿里云镜像配置
  • 原文地址:https://www.cnblogs.com/dyd520/p/11252565.html
Copyright © 2011-2022 走看看